{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"../Pierian-Data-Logo.PNG\">\n",
    "<br>\n",
    "<strong><center>Copyright 2019. Created by Jose Marcial Portilla.</center></strong>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Basic PyTorch Neural Network\n",
    "Now it's time to put the pieces together. In this section we'll:\n",
    "* create a multi-layer deep learning model\n",
    "* load data\n",
    "* train and validate the model<br>\n",
    "\n",
    "We'll also introduce a new step:\n",
    "* save and load a trained model\n",
    "\n",
    "Our goal is to develop a model capable of classifying an iris plant based on four features. This is a multi-class classification where each sample can belong to ONE of 3 classes (<em>Iris setosa</em>, <em>Iris virginica</em> or <em>Iris versicolor</em>). The network will have 4 input neurons (flower dimensions) and 3 output neurons (scores). Our loss function will compare the target label (ground truth) to the corresponding output score. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div class=\"alert alert-info\"><strong>NOTE:</strong> Multi-class classifications usually involve converting the target vector to a one_hot encoded matrix. That is, if 5 labels show up as<br>\n",
    "<pre style='background-color:rgb(217,237,247)'>tensor([0,2,1,0,1])</pre>\n",
    "then we would encode them as:\n",
    "<pre style='background-color:rgb(217,237,247)'>tensor([[1, 0, 0],\n",
    "        [0, 0, 1],\n",
    "        [0, 1, 0],\n",
    "        [1, 0, 0],\n",
    "        [0, 1, 0]])</pre>\n",
    "This is easily accomplished with <a href='https://pytorch.org/docs/stable/nn.html#one-hot'><strong><tt>torch.nn.functional.one_hot()</tt></strong></a>.<br>\n",
    "However, our loss function <a href='https://pytorch.org/docs/stable/nn.html#crossentropyloss'><strong><tt>torch.nn.CrossEntropyLoss()</tt></strong></a> takes care of this for us.</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Perform standard imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create a model class\n",
    "For this exercise we're using the Iris dataset. Since a single straight line can't classify three flowers we should include at least one hidden layer in our model.\n",
    "\n",
    "In the forward section we'll use the <a href='https://en.wikipedia.org/wiki/Rectifier_(neural_networks)'>rectified linear unit</a> (ReLU)  function<br>\n",
    "$\\quad f(x)=max(0,x)$<br>\n",
    "as our activation function. This is available as a full module <a href='https://pytorch.org/docs/stable/nn.html#relu'><strong><tt>torch.nn.ReLU</tt></strong></a> or as just a functional call <a href='https://pytorch.org/docs/stable/nn.html#id27'><strong><tt>torch.nn.functional.relu</tt></strong></a>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Model(nn.Module):\n",
    "    def __init__(self, in_features=4, h1=8, h2=9, out_features=3):\n",
    "        super().__init__()\n",
    "        self.fc1 = nn.Linear(in_features,h1)    # input layer\n",
    "        self.fc2 = nn.Linear(h1, h2)            # hidden layer\n",
    "        self.out = nn.Linear(h2, out_features)  # output layer\n",
    "        \n",
    "    def forward(self, x):\n",
    "        x = F.relu(self.fc1(x))\n",
    "        x = F.relu(self.fc2(x))\n",
    "        x = self.out(x)\n",
    "        return x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Instantiate the Model class using parameter defaults:\n",
    "torch.manual_seed(32)\n",
    "model = Model()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load the iris dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal length (cm)</th>\n",
       "      <th>sepal width (cm)</th>\n",
       "      <th>petal length (cm)</th>\n",
       "      <th>petal width (cm)</th>\n",
       "      <th>target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.5</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.7</td>\n",
       "      <td>3.2</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  \\\n",
       "0                5.1               3.5                1.4               0.2   \n",
       "1                4.9               3.0                1.4               0.2   \n",
       "2                4.7               3.2                1.3               0.2   \n",
       "3                4.6               3.1                1.5               0.2   \n",
       "4                5.0               3.6                1.4               0.2   \n",
       "\n",
       "   target  \n",
       "0     0.0  \n",
       "1     0.0  \n",
       "2     0.0  \n",
       "3     0.0  \n",
       "4     0.0  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('../Data/iris.csv')\n",
    "df.head()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plot the dataset\n",
    "The iris dataset has 4 features. To get an idea how they correlate we can plot four different relationships among them.<br>\n",
    "We'll use the index positions of the columns to grab their names in pairs with <tt>plots = [(0,1),(2,3),(0,2),(1,3)]</tt>.<br>\n",
    "Here <tt>(0,1)</tt> sets \"sepal length (cm)\" as <tt>x</tt> and \"sepal width (cm)\" as <tt>y</tt>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA00AAAH+CAYAAABAwuXeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xt8FPW9P/7XO7uJsAIRBAWi2XghQMJFTCpYb0joUaHYY9V6ifrD0/NLTWyr4KU9zfcHkiPt11rR03ISjJYeLSnWY/3VihxtxQtWz9EGECIXUfwmIBcFlXDTksv7+8dsINns7kx2dnZndl/Px2MeyX5m5jPv3YQJn8/MvN+iqiAiIiIiIqLIslIdABERERERkZtx0ERERERERBQDB01EREREREQxcNBEREREREQUAwdNREREREREMXDQREREREREFAMHTURERERERDFw0ERERERERBQDB01EREREREQx+J0+gIj4ADQC2Kmq3wxbNxvAgwB2hpoWq+rjsfobOnSoFhQUOBApEVHqrVmzZp+qDkt1HGZ4LiaidOaVczElj+ODJgB3ANgMYFCU9b9X1e9b7aygoACNjY0JCYyIyG1EpCXVMVjBczERpTOvnIspeRy9PU9ETgMwE0DMq0dERERERERu5fQzTY8AuBdAZ4xtrhaRDSLyjIicHmkDEakQkUYRady7d68jgRIREREREUXi2KBJRL4J4FNVXRNjs+cBFKjqBAAvA3gi0kaqWq+qpapaOmwYby8lIiIiIqLkcfJK0wUArhSRZgBPAZgmIsu6b6Cqn6nq30MvHwNQ4mA8REREREREfebYoElV/0VVT1PVAgDXA3hFVW/qvo2IjOj28koYCSOIiIiIiIhcIxnZ83oQkRoAjar6JwA/FJErAbQD+BzA7GTHQ0REREREFEtSituq6mtdNZpUdV5owNR1NapYVSeq6qWquiUZ8ZA3NDQABQVAVpbxtaEh1RERERERUSZKyqCJqK8aGoCKCqClBVA1vlZUcOBE1FcicrqIvCoim0Vko4jcEWGbqSLSKiLvhpZ5qYiViJzT0NSAgkcKkLUgCwWPFKChydof1Ej7xdsXkZcl/fY8Iiuqq4EjR3q2HTlitJeXpyYmIo9qB3CXqq4VkYEA1ojIX1R1U9h2b3TdEUBE6aWhqQEVz1fgSJvxh7WltQUVz1cAAMrHR/+jGmm/W/94K0QERzuO9qkvIq/jlSZype3b+9ZORJGp6m5VXRv6/iCMhDt5qY2KiJKpelX1sYFPlyNtR1C9qrrP+7V1th0bMPWlLyKv46CJXCk/v2/tRGRORAoATALwdoTV54vIehH5LxEpjrI/C40TedD21sgzjtHara6Pd1siL+KgiVxp4UIgEOjZFggY7UTUdyIyAMAfANypqgfCVq8FEFTViQB+BeCPkfpgoXEib8rPjTzjGK3d6vp4tyXyIg6ayJXKy4H6eiAYBESMr/X1fJ6JKB4ikg1jwNSgqs+Gr1fVA6p6KPT9SgDZIjI0yWESkUMWli1EILvnTGQgO4CFZbFnIiPtl52VjRxfTp/7IvI6DprItcrLgeZmoLPT+MoBE1HfiYgA+DWAzaq6KMo2w0PbQUTOg/G34bPkRUlETiofX476WfUI5gYhEARzg6ifVW+auCHSfr/5x99g6beW9rkvIq8TVU11DH1SWlqqjY2NqQ6DiMgRIrJGVUsT2N+FAN4A0ASgM9T8EwD5AKCqS0Tk+wAqYWTa+xLAXFV9K1a/PBcTUTpL9LmYvI8px4mI0piq/hWAmGyzGMDi5ERERA1NDaheVY3trduRn5uPhWULE3qlpuqFKtSvqUeHdsAnPlSUVKB2Zm3C+ifKRBw0ERERESVJvDWTrKp6oQp1jXXHXndox7HXHDgRxY+35xERuYhXbgnhuZgoPgWPFKCltaVXezA3iOY7m23376/xo0M7erX7xIf2ee22+88U8ZyL16xZc4rf738cwDgwb4BbdAJ4r729/Z9LSko+tdMRrzQRERERJUm8NZOsijRgitVOieP3+x8fPnz42GHDhn2RlZXlrasSaaqzs1P27t1btGfPnscBXGmnL46CiYiIiJIk3ppJVvnE16d2Sqhxw4YNO8ABk3tkZWXpsGHDWmFc/bPXVwLiISIiIiIL4q2ZZFVFSUWf2imhsjhgcp/Qz8T2mIeDJiIiIqIkibdmklW1M2tRWVp57MqST3yoLK1kEogMEQgEJkVbN2nSpDFOHHPFihUD//KXv5zoRN9uwmeayDENDUB1NbB9O5CfDyxcyAK1RERE5ePLHS0GWzuzloMkOqa9vR1+vx/r1q3b4kT/r7zyysABAwZ0fOMb3zjsRP9uwStN5IiGBqCiAmhpAVSNrxUVRjsREVEma2hqQMEjBchakIWCRwrQ0NRgqy3eY8a7XbwxOM2tcUWzZAmGjByJ8VlZKBk5EuOXLMGQRPW9YsWKgZMnTy6cNWvWGaNHjy4Gjl+FamlpyS4tLR09ZsyYolGjRhW/+OKLA8L3r6qqyjvrrLOKCwsLiyoqKk4DgF27dvkvu+yys8aNGzd23LhxY//85z+f+P777+c8+eSTw5YsWXLqmDFjil588cUBW7duzTn//PMLCwsLi84///zCDz74IAcAli5dOnjUqFHFo0ePLiotLR0NAO+//35OSUnJ6KKiorFFRUVj3XzFiinHyREFBcZAKVwwCDQ3JzsaIu9gynGi9BZepwkAsrOyISI42nH0WFuOLweqirbOtpjbBbIDprf3RTpmpP2sbGe1r2RLdFzxnIvXr1/fPHHixH1Wtl2yBEPmzEHwq6+OX8Do1w+dDz+Mlttuw+d9jbdLIBCYdOTIkXUrVqwYeO211569bt26jWPGjDnafd38+fNP/eqrr+SBBx7Y097ejoMHD2YNHjy4s6uPTz75xDd58uSxH3300XtZWVnYt2+fb+jQoR2zZs064/vf//7eyy677NAHH3yQc9lll4366KOPNs6dO3fkgAEDOmpqaj4BgGnTpp191VVXffGDH/zgs0ceeeTkFStWnPTyyy9vKywsLHrppZc+OOOMM9q6+jx48GCWz+fTQCCgTU1NJ9xwww1nvvfee5vjff/RrF+/fujEiRML7PTBK03kiO1RMqdGayciIsoE1auqe/zHHgDaOtt6DIQA4GjH0R4DpmjbHWk7gupV1X0+ZqT9rGxnta9kc2tc0dTUIK/7gAkAvvoKWTU1yEvUMSZMmHC4a8DU3ZQpUw4vX7586Ny5c0e+8847/bsPmABgyJAhHSeccELn9ddfH3ziiSdOGjBgQCcAvPnmm4PuuOOO/DFjxhTNmjXr7EOHDvm++OKLXmOJdevWnVhRUfE5AFRWVn6+Zs2aAQBQWlp6qLy8vOChhx4a2t5u1Aw7evSo3HjjjQWFhYVF11577Vnbtm3rl6j3n2gcNJEj8qNkTo3WTkRElAkSVY+pL31arQ1lZTun60zFy61xRbNnD3L60h6PQCDQGan9iiuuOLR69er38/Lyjs6ePfuMxYsXn9x9fXZ2Nt59993NV1999f4//vGPJ02dOnUUAKgqGhsbN2/ZsmXTli1bNn366acbwgdcsfzud7/bfv/99+/asWNHzjnnnFO8Z88e38KFC0895ZRT2jZv3rypqalpU1tbm2vHJq4NjLxt4UIg0DOjKgIBo52IiChTJaoeU1/6tFobysp2TteZipdb44pm+HD0ugIUqz2Rtm7dmpOXl9d211137bvpppv2rV27tsf/2FpbW7M+//xz33XXXde6ZMmSHZs3bw4AwIUXXnjggQceOKVru7feeqs/AAwcOLDj4MGDxwqBTZo06fDjjz8+GAAeffTRIaWlpYcAYOPGjSdMmzbt8COPPLJr8ODB7R999FFOa2urb8SIEW0+nw+1tbUnd3S4twgzB03kiPJyoL7eeIZJxPhaX8/seURElNki1WnKzspGjq/nBYYcXw6ys7JNt7NS48lqbSgr2zldZypebo0rmnnzsLNfP/S4StOvHzrnzcNOp4/90ksvDSwqKioeO3Zs0XPPPTf43nvv/aT7+v379/suv/zyUYWFhUUXXXTR6Pvvv38HANTX1+9Yu3btiYWFhUVnnXVW8eLFi4cBwNVXX73/hRdeOKkrEURdXd323/72t0MLCwuLli9ffnJtbe0OAJgzZ85phYWFRaNGjSqeMmXKwSlTpnx55513frp8+fKTJ06cOGbr1q39+vfvb/nKVbIxEQQRkYswEQRR+mtoakD1qmpsb92O/Nz8Y/+xj7fNSqKDSMeMtJ+V7az2lWyJjMvpRBCAkQyipgZ5e/YgZ/hwHJ03DzvtJIGg6BKRCIKDpgzHWkpE7sJBExFR6iVj0ETJw+x5ZAtrKREREaWfRNZkcgsvxUrpiYOmDFZdDRzpmZ0TR44Y7UREROQ9XfWKWlpboFC0tLag4vmKXoMMq9u5gZdipfTFQVMGYy0lIiKi9JLImkxu4aVYKX1x0JTBWEuJiIgovSSyJpNbeClWSl8cNGUw1lIiIiJKL4msyeQWXoqV0hcHTRmMtZSIiIjSSyJrMrmFl2JNtUAgMCnaukmTJo2x2/8ll1xy9r59+3zmWx7385//fNjixYtPjrXN6tWrA7Nnzz7dXnTO8qc6AEqt8nIOkoiIiNJFV10is3pFVrdzAy/F6kbt7e3w+/1Yt27dFrt9vf766x+Gt3V2dkJV4fNFHkvde++9e836vfjii49cfPHFR8y2SyXHrzSJiE9E1onIigjrThCR34vIhyLytogUOB0PpYeGBqCgAMjKMr4yTToREZGhfHw5mu9sRuf8TjTf2Rx1cGF1OzfwUqyWLVkyBCNHjkdWVglGjhyPJUuGJKrrFStWDJw8eXLhrFmzzhg9enQxcPwqVEtLS3ZpaenoMWPGFI0aNar4xRdfHNB936effnrQjBkzzuze17Rp084GgLy8vPG7d+/2v//++zlnnnlm8U033ZRfXFxctG3btpyHH354aEFBwbjzzjtv9PXXXx+85ZZb8gFg7ty5I+fNm3cqAJx33nmjKysr88aPHz+2oKBgXNexV6xYMfDSSy89GwBaW1uzrrnmmoLCwsKiwsLCov/4j/84CQDKy8vzx40bN/bss88unjNnzshEfVZWJeP2vDsAbI6y7rsAvlDVswE8DOCBJMRDHsf6UkRElKki1SsKb6t6ocp0GzfXbnJDDI5bsmQI5swJYvfuHKgCu3fnYM6cYCIHThs2bDjxwQcf3Llt27aN3duXLl06pKysrHXLli2bNm/evHHy5Mk9rvBcddVVB9atW3figQMHsgBg+fLlg6+55prPw/tvbm7ud+utt362efPmTTk5OfqLX/xixNtvv735jTfe2PrBBx/0ixZXe3u7NDU1bX7ggQd21NTU9Br8/PjHPx4xaNCgjq1bt27aunXrppkzZx4EgEWLFu187733Nm/ZsmXjm2++OfDtt9/uH+9nEw9HB00ichqAmQAej7LJtwA8Efr+GQBlIiJOxkTex/pSRESUiSLVK/qn5/4Jt/7x1h5tdY11ptu4tXaTG2JIipqaPHz1Vc//h3/1VRZqavISdYgJEyYcHjNmzNHw9ilTphxevnz50Llz54585513+g8ePLiz+/rs7GxMnTr1wFNPPZXb1taGV155JfeGG27YH97PiBEjjpaVlR0GgDfeeOPEyZMnHzz11FM7TjjhBL3qqqu+iBbXtdde+wUAfP3rXz/88ccf54SvX7169aA5c+Z82vV62LBhHQDwxBNPDCkqKhpbVFRU9MEHH/Rbv3591IGZE5y+0vQIgHsBdEZZnwdgBwCoajuAVgC9HhQTkQoRaRSRxr17TW+LpDTH+lJERJSJItUrOtpxFG2dbTH3i7SNW2s3uSGGpNizp9dgIWZ7HAKBQMT/f19xxRWHVq9e/X5eXt7R2bNnnxEpScP111//+TPPPDPk+eefHzRhwoQj4QOr8P5V1XJc/fr1UwDw+/3o6OjodbFEVRF+DWXLli05ixcvPvX111/funXr1k3Tpk1r/Sp80Okwxw4mIt8E8Kmqrom1WYS2Xp+6qtaraqmqlg4bNixhMZI3sb4UERFlokTXJXJj7SY3xJAUw4f3ugIUsz2Btm7dmpOXl9d211137bvpppv2rV27NhC+zcyZMw9u3Lgx8Nhjjw299tpre92aF+6iiy46/Pbbbw/cu3evr62tDc8999zgeOObOnXqgUWLFp3S9Xrv3r2+L774wte/f//OIUOGdOzYscP/2muv5cbbf7ycHKFdAOBKEWkG8BSAaSKyLGybjwGcDgAi4geQC8D0B0OZjfWliIgoEyW6LpEbaze5IYakmDdvJ/r163n1pl+/Tsybt9PpQ7/00ksDi4qKiseOHVv03HPPDb733ns/Cd/G7/ejrKys9fXXX8+97rrrWs36POOMM9rmzJmz+2tf+9rYCy64YHRhYeGXubm5HfHE97Of/Wz3/v37faNGjSoePXp00cqVKweef/75X44bN+7IqFGjim+++eaCkpKSQ/H0bYf05XJa3AcRmQrgblX9Zlj77QDGq+ptInI9gG+r6ndi9VVaWqqNjY3OBUue0NBgPMO0fbtxhWnhQqZOp/QgImtUtTTVcZjhuZgo+bqe9+l++1qOLweqGvMWvUjbBLIDqJ9V3yMLXaT+I23nJDfEAMR3Ll6/fn3zxIkT91neYcmSIaipycOePTkYPvwo5s3bidtu8+zFg9bW1qzc3NzOtrY2XHbZZWfPnj173y233NLrWahUWL9+/dCJEycW2Okj6cVtRaRGRK4Mvfw1gJNF5EMAcwH8ONnxkDeVlwPNzUBnp/GVAyYiIkp35ePLUT+rHsHcIASCYG4QS7+1FL/5x9/0aKssrTTdJtIgJFL/yR6suCGGpLntts+xa1cTOjvXYNeuJi8PmADgnnvuGTlmzJiiwsLC4vz8/L/fdNNNrhgwJUpSrjQlEmc33aOqCqivBzo6AJ/PSPtdW5vqqIi8jVeaiIhSLylXmihpPHmlidJDVRVQV2cMmADja12d0U5E7iEip4vIqyKyWUQ2isgdEbYREfllqND4BhE5NxWxEqUDp+soeV287zNTPh9yL15porj4/ccHTN35fEB7e/LjIUoXib7SJCIjAIxQ1bUiMhDAGgD/qKqbum0zA8APAMwAMBnAv6nq5Fj98lxM1Fu8zxxlZ2VDRHC043jitFQ8x+O0eJ9XSsVzTrzSlF54pYlSJtKAKVY7EaWGqu5W1bWh7w8C2AyjRl533wLwpBr+B8BJocEWEfVBvHWU2jrbegyYgPSsTRRvDaaMqd1ErsZBE8XF5+tbOxGlnogUAJgE4O2wVccKjYd8jN4DKxYaJzLhdB0lr4u3BlPG1G4iV+OgieJSUdG3diJKLREZAOAPAO5U1QPhqyPswkLjRH3kdB0lr4u3BlPG1G5KgEAgMCnaukmTJo1JZizhGhoacn/yk58Mj2ffWO8rWThoorjU1gKVlcevLPl8xmtmzyNyHxHJhjFgalDVZyNscqzQeMhpAHYlIzaidLKwbCEC2T2rr+f4cpCdlR1zv+ysbOT4cnq0BbIDWFiWXlXbI30+Vt5nvPuRoT30sPm6deu2JPN44crLy1t/+tOf7knV8e3ioIniVltrJH1QNb5ywETkPiIiMGribVbVRVE2+xOAW0JZ9KYAaFXV3UkLkihNxFtH6Tf/+Bss/dbStK9NFG8NpnSt3bTkb0uGjHxo5PisBVklIx8aOX7J35YMSVTfK1asGDh58uTCWbNmnTF69Ohi4PjVmpaWluzS0tLRY8aMKRo1alTxiy++OKD7vk8//fSgGTNmnNm9r2nTpp0NAM8+++ygc845Z0xRUdHYK6644szW1tYsAMjLyxt/9913jygpKRm9dOnSwffff/8pZ511VnFhYWHRN7/5zTMB4Je//OXJt9xySz4A7Nixw/+Nb3zjrNGjRxeNHj266C9/+cuJAHDfffedOmrUqOJRo0YV19TUnBL+vjo7O/G9733vtFGjRhUXFhYWPfbYY4Ojvd9E8zvRKbnH9OnAqlXHX5eVAS+/nLp4+qKhAaiuBrZvB/LzgYULWcSWnNPQ1IDqVdXY3rod+bn5WFi2sE9/kO3u76ALANwMoElE3g21/QRAPgCo6hIAK2FkzvsQwBEAt6YgTqK0UD6+POK/fSvnA5ecMxwV7fNxaj+3WvK3JUPm/HlO8Kv2r7IAYPeh3Tlz/jwnCAC3fS0xRW43bNhw4rp16zaOGTOmR5aRpUuXDikrK2t94IEH9rS3t+PgwYM9LqJcddVVB+64447ggQMHsgYNGtS5fPnywddcc83nu3fv9v/0pz8dsXr16q2DBg3qrK6uHv6v//qvp/7iF7/YDQD9+vXrXLNmzfsAcMopp0xoaWlp6t+/v+7bt6/XE++33XZb/kUXXXRw3rx529rb29Ha2up74403Ar/73e9OXrNmzWZVRUlJydiysrKDF1xwwZdd+z355JMnNTU19d+8efPG3bt3+88777yx//AP/3Ao1vtNFF5pSmPhAybAeD19emri6YuGBuP5qJYW40pWS4vxuoFlGcgBXelsW1pboFC0tLag4vmKPtUPsbO/k1T1r6oqqjpBVc8JLStVdUlowIRQ1rzbVfUsVR2vqswlTpRA4TWGpj85Hf4aP2SBwF/jR9ULkYscurU2kVvj8pKa1TV5XQOmLl+1f5VVs7qmVxKeeE2YMOFwpAHElClTDi9fvnzo3LlzR77zzjv9Bw8e3Nl9fXZ2NqZOnXrgqaeeym1ra8Mrr7ySe8MNN+x/7bXXTty2bVu/8847b8yYMWOKnnrqqZO3b99+7L7SW2655Yuu70ePHv3lVVdddUZtbe2Q7OzsXs/IvvXWWwPvueeevQDg9/tx8sknd7z22msDZsyYsX/QoEGdubm5nTNnzvzi1VdfHdh9vzfeeGPgd77znc/9fj9OP/309smTJx/661//Goj1fhOFg6Y0Fj5gMmt3k+pq4EjP7KI4csRoJ0o0u+lsmQ6XiKKJNKmy6v+sQocaNTo6tAN1jXW9Bk5unYxxa1xes+fQnpy+tMcjEAh0Rmq/4oorDq1evfr9vLy8o7Nnzz5j8eLFJ4dvc/3113/+zDPPDHn++ecHTZgw4cjgwYM7VRUXXnjhgS1btmzasmXLpm3btm18+umnW7r2GThw4LHjvfrqqx/cfvvte9esWXPixIkTi9raYqfdBwArtWNjbRPt/SYKB03kStujZBGN1k5kh910tkyHS0TRRJpUiaR+Tb3pfm6YjHFrXF4zfMDwiFdEorUn0tatW3Py8vLa7rrrrn033XTTvrVr1wbCt5k5c+bBjRs3Bh577LGh11577ecAMHXq1MONjY0D3nvvvRMA4ODBg1kbNmw4IXzfjo4ObNu2LWfWrFkHa2trPz548KCvtbW1xy16F1xwwcEHH3xwGGAkbvj888+zpk2bdmjlypUnHTx4MOvAgQNZK1euHHzppZce7L7fJZdccvCZZ54Z0t7ejl27dvnfeeedARdddNHhRH4+0XDQRK6UHyWLaLR2IjvsprNlOlwiisbq5EnXlSez/VI9GePWuLxm3sXzdvbz9+txZaSfv1/nvIvn7XT62C+99NLAoqKi4rFjxxY999xzg++9995Pwrfx+/0oKytrff3113Ovu+66VgAYOXJk+6OPPtp8/fXXn1lYWFhUUlIypqmpqV/4vu3t7XLjjTeeUVhYWDRu3Lii733ve58MHTq0xy94XV3d9tdff31g1zZr167tf+GFFx658cYbPzv33HPHlpSUjL355pv3dn+eCQBuvvnm/cXFxV+OHTu2eOrUqYULFiz4OD8/35l0eWHEyqUwNyktLdXGRt5ub0WkZ5oAbySD6HqmqfsteoEAUF/PZBCUeF23m3SfPQ1kByxnZ7K7f3ciskZVS/u0UwrwXExkTcEjBWhpbTHdzic+tM87/n+/aPsFc4NovrM5kSH2iVvjSrR4zsXr169vnjhx4j6r2y/525IhNatr8vYc2pMzfMDwo/MunrczUUkgqKf169cPnThxYoGdPnilKY29/LIxQOrOCwMmwBgY1dcDwSAgYnzlgImcYjedbbqmwyUi+yLVGIqkoqRndXi31iZya1xedNvXbvt81127mjrnd67ZddeuJg6Y3I0px9OcFwZI0ZSXc5BEyWM3nW26pcMlosToOi90L0lw9pCz8Vrza+jQDvjEh4qSCtTOrDXdzw2lDNwaF5HTOGhKc3ZqHZntyzpKRERE5tKtNpFb4yJyEm/PS2N2ah2Z7cs6SkRElOmqFk2Hf75A7hP45wuqFk1H1QtVpjWYEl3nKPyY05+cbql/K3HYiTUD6zl1dnZ2SqqDoJ5CPxPb6ciZCCKNFRQYg5lwwSDQ3GxvXzt9E1F0TARB5A1Vi6aj7sAqoPt/kRU9X4dUllYeu/0ukYljAGPAVNdYF3ObSP1bicNOrIl+n8kWZyKIPw0fPrxo2LBhrVlZWd76D3aa6uzslL179+bu2bNn08SJE6+00xcHTWksK8u4ChROBOg0GW+b7WunbyKKjoMmIm/wzxd0WLxfp3tmvERnn/PX+HulK48kvH8rcdiJ1etZ9uI5F69Zs+YUv9//OIBx4N1cbtEJ4L329vZ/Likp+dROR6bPNIlIKYCLAIwE8CWA9wC8rKrM8OFy+fmRrwZZqXVktq+dvokoPiIyGMfPxc2qyikKohTp6MNNWN0HNYmuc2RlwBSpfytx2Ik1E+s5hf5TbutqBrlX1FGwiMwWkbUA/gVAfwDvA/gUwIUA/iIiT4gI/4vsYgsXGrWNugsEjHa7+9rpm4isE5FcEfmJiDQB+B8AjwJ4GkCLiPyniFya2giJMpOvDzfq+MR37PtEF8Pu3ncs4f1bicNOrCz6Tekm1qXDEwFcoKpXq+pPVfVxVV2sqj9U1RIADwMYlZwwKR52ah2Z7cs6SkRJ8wyAHQAuUtXRqnqhqpaq6ukA/jeAb4nId1MbIlHmqcgtM55h6i7KQKp7DaZE1zkKr+8USaT+rcRhJ1bWc6J0w2eaiIhchM80EXlH1aLpqG9dhQ4xrjxV5JYBowtRv6Y+Zg2mhqaGhNY5qnr8FubSAAAgAElEQVShqscxpxZMxYeff2jav5U47MSa6PeZTF45F1PymA6aROQMAD8AUIBuz0Cpakru2XTjH+pU1itirSTyEi//AU2WWH+oRWQCep+Ln01SaD248VxMRJQoHDRROCuZPf4IoBnArwA81G0hpLZeEWslkZd0pZ9taW2BQtHS2oKK5ysyoW5HQojIUgBLAVwNYFZo+WZKgyJKE47XE2poMGp1ZGUZX/mHmshzrFxpeltVJycpHlNum91MZb0i1koiL/F6+tlkiTa7KSKbVLUoFTFF4rZzMVG8HK8n1DXDeeR4/wgE+CCwy/FKE4WzcqXp30RkvoicLyLndi2OR+YR26NkzozWni7HJuqrTEw/m2D/LSKuGTQRpYvqVdU9BkwAcKTtCKpXVSfoANU9B0yA8bo6Qf0TUVKY1mkCMB7AzQCmwSgQBRj5YaY5FZSXpLJeEWslkZfk5+ZHvNLE9LOWPQFj4LQHwN8BCABV1QmpDYvI2xyf0OEMJ1FasHKl6SoAZ6rqJap6aWjhgCkklfWKWCuJvITpZ21bCmMC63Icf55pVkojIkoDjtcTijaTyRlOIk+xMmhaD+AkpwPxqlTWK2KtJPKS8vHlqJ9Vj2BuEAJBMDeYuGcGMsN2Vf2Tqv4fVW3pWlIdFJHXOT6hwxlOorRgJRHEawAmAPgbjFtCAJinHBeRfgBWAzgBxm2Az6jq/LBtZgN4EMDOUNNiVX08Vr98+JiI0lmMRBC1MCawnkfPczFTjhPZ5Hg5BNYH8RwmgqBwVq40zYdxi95P0beU438HME1VJwI4B8DlIjIlwna/V9VzQkvMARP1VlUF+P3GlSa/33jdl/VOZkFlhlWihOoP47z6D2DKcaKEKh9fjuY7m9E5vxPNdzYn/gp4ebmR1raz0/jKAROR51gZNG0H8Laqvq6qrwN4B4DpLSFqOBR6mR1aYl/Woj6pqgLq6oCODuN1R4fxumtgZLbeyTpPrCFFlFiqemuE5Z9SHRdRWrAyy5fImUCXzCo6Xp+KKI1YuT2vEcDXVfVo6HUOgDdV9WumnYv4AKwBcDaAf1fVH4Wtnw3gZwD2AtgKYI6q7ojVJ28JOc7vPz4g6s7nA9rbzdc7WeeJNaSI4hPj9rwnANyhqvtDrwcDeChVAyeeiyltWKmjlMhaSy6p2+R4fSqP4+15FM7KoOldVT0nrG196LY7awcROQnA/w/gB6r6Xrf2kwEcUtW/i8htAL4TKTOfiFQAqACA/Pz8kpZI/xvPQCLR16mar8/KMr5G6rezs3d7XzjZN1E6izFoWqeqk8zakoWDJkobVmb5EjkT6JJZRRYcj42DJgpn5fa8vSJyLOmDiHwLwL6+HCQ0M/oajFS53ds/U9WuB5ofA1ASZf96VS1V1dJhw4b15dBpzeeL3W623sksqMywSpRwWaGrSwAAERkCa7X2iCgWK3WUEllrySV1m1hwnKhvrAyabgPwExHZLiLbAfwIoas+sYjIsNAVJohIfwDTAWwJ22ZEt5dXAthsNXAyru7Hajdb72QWVGZYJUq4hwC8JSL/KiI1AN4C8PMUx0TkfVZm+RI5E+iSWUXH61MRpRnTQZOqblPVKQCKABSr6tdVdZuFvkcAeFVENsBIV/4XVV0hIjXdrlz9UEQ2ish6AD8EMDu+t5GZamuBysqeV5YqK412K+udrPPEGlJEiaWqTwK4GsAnMJ4D/baq/ja1URGlASuzfImcCXTJrCILjhP1TdRnmkTkJgC/U9WIT6CIyFkARqjqXx2MrxfeR09E6Sz8PnoRGdAtE2m0fUy3STSeiymtWKmjlMhaSy6p2+R4fSoP4zNNFC7WlaaTAawTkaUicruIfEdEbgldKXodxm0hnyQnTHezkznUrI6S3f3NYktl7CllM92rWZpWpnGlBHpORB4SkYtF5MSuRhE5U0S+KyIvIex5USLqIyt1lBJZa8kldZscr09FlE5UNeoCwAfgGwDuA/AogEcAfA9Afqz9nFxKSkrUTZYtUw0EVI1cccYSCBjtZiore+7XtVRWWju22f5msaUy9pSy88ZVddmGZRpYGFDch2NLYGFAl21YZmk9USwAGrX3uXgGgAYAzQAOAPgMxjNN1QCGh28ftu9SAJ8CeC/K+qkAWgG8G1rmxeqva3HbuZhIly1TDQZVRYyvFs/pqqo6cmTPvwkjR/bur7LSWv+Vlao+n9GPz6daWanLNizT4MNBlftEgw8HtXJFZY/X/PvgPpHOxVwyezFNOe42brslxE7mULM6Smbs1mFKZewpZTPdq1maVqZxJTsSfUuIiFwM4BCAJ1V1XIT1UwHcrarf7Eu/bjsXU4azU/soLw/Ytavvx4zUf1dV+e6hjQcqrvLjSFb0P46sj+Q+vD2PwlnJnkcx2MkcGmnQEau9r/ubxZbK2FPKZrpXszStTONKbqKqqwF8nuo4iBxVXd1zwAQYr6urzfeNZ8AUrf/6+t6hlSHmgAkAjrQdQfUqC7ESUcpw0GSTncyhZnWU7O5vFlsqY08pm+lezdK0Mo0redD5IrJeRP5LRIqjbSQiFSLSKCKNe/fuTWZ8RLGlqvZReP8RZg6351rsihNrRK7GQZNNdjKHmtVRsru/WWypjD2lbKZ7NUvTyjSu5DFrAQRVdSKAXwH4Y7QNlYXGya1SVfsovP8IM4f5rRa74sQakauZDppE5AQRuVFEfiIi87qWZATnBXbqEZnVUbK7v1lsqYw9pWwWkSofX476WfUI5gYhEARzgz3uRTdbTxQvEfGJyEgRye9a7Papqgc0lK5cVVcCyBaRobaDJUomO5NhI0fGd8xI/UeYOVy4Cgh0+mN3xYk1ItczTQQhIi/CyKy0BsCx686q+pCzoUXGh4+JKJ1Fe/hYRH4AYD6MUg9d9fNUVSdY6LMAwIooiSCGA/hEVVVEzgPwDIwrTzH/OPBcTK5jp/ZReDKIkSOBn/+8Z38zZgArV5r3X1VlTMR1dBgzihUVaKi8oEc9pBmjZmDlBytZH8nFmAiCwlkZNL0X6Q9tqvAPdU9mfyNcUj8v4zTUVaH6o3psP7ED+Yd9WHhmBcork3MZruqFKtSvqUeHdsAnPlSUVKB2phcuARIQc9D0IYDJqvpZH/tbDiOt+FAYA675ALIBQFWXiMj3AVQCaAfwJYC5qvqWWb88FxNROuOgicJZeabpLREZ73gk1GddGVZbWozCEi0txuuuOq1m68kZDXVVqNhZh5YBHVABWgZ0oGJnHRrqnK/+W/VCFeoa69ChxkXhDu1AXWMdql7wUuVhimIHjKv+faKqN6jqCFXNVtXTVPXXqrpEVZeE1i9W1WJVnaiqU6wMmIgcZbP4uCmrldnD45g+vfd+TscaJxZYJ0q8qFeaRKQJgALwAxgF4CMAfwcgsHhLiBM4u3mck3WYKH4F9/jRMqB3BqXgIR+aH3S2iJW/xn9swNSdT3xon+f2AloE9J7dFJG5oW+LAYwG8AKMczEAQFUXJTdCA8/F5Ag79ZasiFBHCUDvh3IjxRGJ39+zOGEiY41TQ1MDKp6vwJG247GzDlTf8UoThYs1aArG2lFVI/x33Hn8Q31cVpZxBSmcCNDZab6enJF1n0Cld7so0Hmfs8WkZUGEA4fofG8Vss5UEQZN82Nsrqpak4SweuG5mBzh9Gyf1crs0eKwIsUzkyywnhgcNFG4qOlcugZFIvJbVb25+zoR+S2AmyPuSEmTnx/5nN69DlOs9eSM/MO+iFea8g87X8TKJ76oV5rIm1R1AQCIyLWq+p/d14nItamJisghTtdbslqZ3c7xnK4NZXZ4FlgncoSVZ5p6FDoUER+AEmfCob5wsg4TxW/hmRUItPVsC7QZ7U6rKIl8jGjt5Cn/YrGNyLucrrdktTK7neOleGaSBdaJnBF10CQi/yIiBwFMEJEDoeUggE8BPJe0CCkqJ+swUfzKK2tRn1eJ4CEfRI1nmerzKpOSPa92Zi0qSyuPXVnyiQ+VpZXMnudhInKFiPwKQJ6I/LLb8h8wMt4RpQ+nZ/usVmaPFEck/rAbdlwwM8kC60TOsJJy/Geq6prZTN5HT0TpLMIzTRMBTAKwAED3wuIHAbyqql8kOUQAPBeTg5yulRGhjlLEyuzhcZx9NvDaaz33u+ACV9b1aGhq6FEXinWg+o7PNFEvqhpxAXBurCXafk4vJSUlmmjLlqkGg6oixtdlyxK3f2Wlqs+nChhfKysTF7fZsTOaiz+YZbWVGrzbpzIfGrzbp8tqe/5SLNuwTIMPB1XuEw0+HNRlGxIbu1n/Mdfb/Fydfm/pAECjRj4nZ0dqT9XixLmYiMgtop2LuWTuEjURBICHQl/7ASgFsB5GuvEJAN4GcGHCR3ApEJ5VtKuWEWBtsijW/m++2TOzaUfH8deRJrWSHXvacvEH01XD6cgA43VXDSfUGbf1haeKbWltQcXzRuyJmCU06z/m+g2w9bk6/d7SVbfyDxDpnR1RU1T+gchUIq8YTZ8OrFp1/HVZGVBY2POK0ejRwPvv97wSBPS+qhTp6hBgrS2j/7gSZTYrt+c9BWChqjaFXo8DcLeqznY+vN4SfUuI3eymsfb/+GNrmU3jxTpMUbj4gzGr4eR0qliz/mOufwS2PlemwbUmwu15XeUfbg99/W3oazmAI8qU4+RGiay3FD5gssvn6/nHOSfHqM/R1i2DT3a28TDw0aPH21xQg4mSh7fnUTgr2fPGdA2YAEBV3wNwjnMhJZfd7Kax9rea2TReTmdm9SwXfzDbT4z8w+9qdzpVrFn/Mdfb/FyZBjc+qtqiRgmIC1T1XlVtCi0/BnBZquMjiqi6undh2CNHjPa+SuSACej9R/jo0Z4DJsB43X3ABMQfPxGlBSuDps0i8riITBWRS0TkMQCbnQ4sWexmN421v9XMpvFyOjOrZ7n4g4lWq6mr3elUsWb9x1xv83NlGlzbThSRY7dFi8jXAZyYwniIonPx5JUtXo+fiOJmZdB0K4CNAO4AcCeATaG2tGA3u2ms/a1mNo0X6zBF4eIPxqyGk9OpYs36j7ne5ufKNLi2fRfAv4tIs4g0A6gF8E+pDYkoChdPXtni9fiJKH6pzkTR14XZ86wfO6O5+INh9jxmz4sFJhmbAAwCkBtrm2QszJ5HMS1bphoIGH/8upZAIL5zcVlZz37sLl1/lLuWnBzV7OyebdnZRnsi4idPMjsXc8m8JWoiCBF5WlW/0z1zU9hgKyUZm/jwMRGlswiJIG5S1WUiMjfS9qq6KHnRHcdzMZli9jzyMCaCoHCxBk0jVHV3t8xNPajxYHLSufEPtZ2/C2b7Rvo78fLLiY2fksvpooMNc6ejWldhey6Q3woslDKUL7L+S1O1aDrqW1ehQwCfAhW5Zaidy1+6ZIkwaPqeqj4qIvMjba+qC5IX3XFuPBcTESUKB00ULuozTaq6O/RtGYAcDWVw0uOZnAjHs6q2tBjX77tK1zQ02N83UpbVVauMdvKmrlpFLa0tUOixWkUNTRZ+Yaz0P3c6KvqvQstJgArQchJQ0X8VGuZa+6WpWjQddQdWoSMLgAAdWUDdgVWoWsRfulRR1UdD3z6gqgvCl5QGR+SEhgajdERWlvG1oSFym5X9rPYfb1xElDGs1GmqgVHINghgDYA3ALyhqu86H15vbpvdtFMSyGzfCHUsjzH5sZFLOV6HaY6g5aTe7cH9QPPD5r80/vliDJjC+DqB9gX8pUuGaLObIvIhgE9gnINXA3hTVVuTHV8Xt52LKU1Equ9kpWaS1bpQ8daPSmTdKfIEXmmicKaDpmMbivQH8P8CuBtAnqomKHF237jtD3VWVuQBjAjQ2WlvXw6a0k/Wgixo70cEIRB0zjf5hbHS/30CjfB7Iwp03mf+SyP3CRDp904BtbA/2RfrD7WI5AO4CMAFAGYA2K+qKamb57ZzMaWJaLOJkXSfnbQ6gxnvTKeLi6aTMzhoonCmKcdF5H+JyH8B+DOAs2EMmk5zOjCvsJNVNV0zslJ0jtdhinLdIVp7OF+UcVG0dkoeETkNxmDpIgCTYJSC+H1KgyJKtL7UQeq+rdW6UPHWj0rXulNEZJmVOk3fBnAygJcBPAvgT92ed8p4dkrXmO1bVhZ5v2jt5H6O12GSMgTCitgHjhrtVlTklvXOlRlKBkEptx1Grbz/UtXzVXWmqv4s1UERJVRfZg27b2t1FjLe2UrOchJlPNNBk6qeCyMZxDsAvgGgSUT+6nRgXlFebtzSHAwat9MFg9ZvcTbb9+WXew+QmD3P28rHl6N+Vj2CuUEIBMHcIOpn1Scse175opdR/2UZgvuNW/KC+4H6L61nz6ud+zIqB5XB1wlAjWeZKgcxe55LTALwJIAbReS/ReRJEfluqoMiSqhIs4nZ2UBOTs+28NlJqzOY8c50urhoOhElh5VEEONg3A5yCYBSADtgJIKYZ7JfPxgPK58AwA/gGVWdH7bNCTD+E1AC4DMA16lqc6x+eR89EaUzk2eaBsBIzHMRgJsAqKoWJDG8Y3guJsdEqsUBmNf2sFr/I946IYmsO0Wux2eaKJyV2/MeADAQwC8BjFXVS80GTCF/BzBNVScCOAfA5SIyJWyb7wL4QlXPBvBw6FgJZ5YlNJVZRKuqAL/fuNLk9xuv+xJbSjOg2j243TcfK7S6KhTc40fWfYKCe/xoqOvZd0NTAwoeKUDWgiwUPFLQK+W32f5Omv7kdMgCObZMfzIs3bfJ52L3vdth+rk6eGwvx2aFiDQC+G8AVwHYAuDiVA2YiBxVXm4kV+jsNL6Wl0dus7Kf1f7jjYuIMoeqOr4ACABYC2ByWPtLAM4Pfe8HsA+hq1/RlpKSEu2LZctUAwFVI9+csQQCRruV9U6qrOx53K6lstL9sds+uN03Hyu02koNVENx3/ElUA1dVmv0vWzDMg0sDPRcvzCgyzYss7S/k8qeKOtx3K6l7Imy0JuL/bnYfe92mH6uDh7by7GFA9Cokc+jwyK1p2rp67mYUmzZMtVgUFXE+JqUPxQWRIrLrbFSRol2LuaSuYvllOPxEBEfjNpOZwP4d1X9Udj69wBcrqofh15vCw2s9kXrs6+3hJhlCU1lFlG/H+jo6N3u8wHt7e6O3fbB7b75WKHd40fLgN59Bw/50Pxgu2mtJLP9nSQLoueZ1/lq+rnYfe92mH6uDteo8mps4bxySwhvz/MQt9YYihRXTo4xHdTWdrzNDbFSxvHKuZiSx8rteXFT1Q41aoicBuC80PNR3UWpCBO2kUiFiDSKSOPevXv7FINZltBUZhGNNGbo3u7m2G0f3O6bj2H7iZH77mrf3hq5j652s/1TyuRzsfvebYVm9rk6eGwzbo6NyHHV1T0HJoDxuro6NfF0iRTX0aM9B0yAO2Iloozn6KCpi6ruB/AagMvDVn0M4HQAEBE/gFwAn0fYv15VS1W1dNiwYX06tlmW0FRmEfVFKQ/c1e7m2G0f3O6bjyH/cOS+u9rNaiWZ7Z9SJp+L3fduKzSzz9XhGlWxuDk2Ise5tcZQvDWZiIhSIOqgSUSeF5E/RVvMOhaRYSJyUuj7/gCmw3h4ubs/Afh/Qt9fA+AVTfD9gmZZQlOZRbSiIna7m2O3fXC7bz5WaGdWIBA2URloM9oB81pJZvs7qeyMyPWQjrWbfC5237sdpp+rwzWqvBqbGRH5dqwl1fGRB7i1xlC8NZmIiFIh2sNOMFKMR13MHpYCMAHAOgAbALwHYF6ovQbAlaHv+wH4TwAfwqgDdaZZv/E8fGz2TGkqnzmtrFT1+VQB42tlWK4BN8du++B233ys0GorNXi3T2U+NHi3r1cSh2Ublmnw4aDKfaLBh4O9Hvg3299J4ckgjiWBOBZc7M/F7nu3w/RzdfDYXo6tO4Q9fAzgNzGWpWpyznRqYSIID0lp1qA+xpWTo5qd7b5YKeOEn4u5cHE0EYQT+PAxEaUzrzx8zHOxx7i1xlC8NZmIHOaVczElj+kzTSIySkSeEZFNIvJR15KM4JIlpbWOMlkqi1DZPbZZraRYNX/svq80/oV1e62kVBORmSJyr4jM61pSHRN5hFtrDMVbk4mIKNnMLkUB+CuAMhi32QUB3AdgQaoujSX6lhC33rWQ9lJZhMrusc1qJcWq+WP3faXxL6ybaiWlEqLXaVoC4EkAOwDMB9AE4NeRtg3bbymATwG8F2W9wChe/mHoPH+uWZ/qwLmYXMrsNuq+bhfvbdes50RJFu1czCVzF9Pb80KXJ0tEpElVx4fa3lDVixI3dLMu0beEpLTWUSZLZREqu8c2q5UUq+bPI7D3vtL4F9ZNtZJSKdotISKyQVUndPs6AMCzqvoPJv1dDOAQgCdVNbzsA0RkBoAfAJgBYDKAf1PVyWZx8va8DFBVBdTV9W6vrARqa/u+Xbz1oiLtl50NiBgpyvvSF5FFvD2PwlkZNL0J4CIAzwB4BcBOAP9bVUc7H15vif5DnZVlTNeHEzHuDCCHmH3wTv5g7B7bZH3Wgixo73JjEAg6F8De+0rjX9iYn9t8b7+3vogxaHpbVSeLyP8A+DaAz2BcPRploc8CACuiDJoeBfCaqi4PvX4fwFRV3R2rTw6aMoBZEfK+bhfvpE+0/SJJgwkkcgcOmiiclTpNdwIIAPghgBIAN+N4mnDPc2sm1rSXyiJUdo9tVispVs0fu+8rjX9hWSvJ1IpQGYcHAawF0AzgqQT0mwfjlr8uH4faerFTaJw8yKwIeV+3i7deFOs5EZELmA6aVPVvqnoIwAEAP1TVb6vq/zgfWnKktNZRJktlESq7xzarlRSr5o/d95XGv7BurpXkEj9X1f2q+gcYz5eOAXB/AvqVCG0Rb0FQG4XGyYPMipD3dbt4J31Yz4mI3MDsoScApTAeOG4OLesBlKTqISwnHj7ms6QpksoiVHaPbVYrKVbNH7vvK41/Yd1SKymVED0RxForbVH2LUD0RBCPArih2+v3AYww65OJIDJAZaX2SDrTtYQnebC6XbyJbCLtl51t1HRKw6Q45A7RzsVcMnex8kzTBgC3q+obodcXAqhV1QmJG7pZx/voiSidhd9HLyLDYdwutwzAjTh+ZWgQgCWqOsZCnwWI/kzTTADfx/FEEL9U1fPM+uS5OENUVRnJFTo6jCtHFRU9kzv0dbt460WxnhMlGZ9ponBWnmk62DVgAgBV/SuAg86FRJnCtCZPVZXxgLGI8bWqyvq+dsU4tpXjx1pf9UIV/DV+yAKBv8aPqhd69u14HSYP13ly8ufu4hpRlwH4BYDTACwC8FBomQPgJ2Y7i8hyAP8NYLSIfCwi3xWR20TkttAmKwF8BCPl+GMAqqJ0RZmottZI5qBqfI00EOrLdvHWYGI9JyJKMStXmh6GkQhiOYz73K8D8AWAPwCAqq51OMYeOLuZHhqaGlDxfAWOtB1PIRvIDqB+Vj3Kx5fHTGHbUHlB7H3tMkmfaxZ7rPVvbn8TdY29+64srUTtzNr4U/Ja5XT/DjL9nXFp330VI3ve1Wo8z+QKPBcTUTrjlSYKZ2XQ9GqM1aqq0xIbUmz8Q50eTGvyxEhhW/CL05yt52OSPtcs9ljrPz7wMTq0d98+8aF9XrvzdZg8XOfJyTpObqoRFWPQNBzAQgAjVfUKESkCcL6q/jqpAYbwXExE6YyDJgrnN9tAVS9NRiCUWba3Rk4Le6w9Rgpb033tMkmfa3b8WOs1clKy4wOpeFPyWuV0/w5y8ufu+O9UYvwmtFSHXm8F8HsAKRk0ERERZRLTZ5pE5FQR+bWI/FfodZGIfNf50CidmdbkiZHC1vF6Pibpc82OH2u9TyL3fazd6TpMHq7z5OTP3SM1ooaq6tMAOgFAVdsBRBnhExERUSJZSQTxHwBeAjAy9HorjIK3RHEzrclTURF5x4oK5+v5xDg2YB57rPUVJZH7PtbudB0mD9d5cvLn7pEaUYdF5GSEaiiJyBQArakNiYiIKEOY5SQH8LfQ13Xd2t5NVY501gZJH6Y1eSorVX0+VcD42q3mh+P1fGIc28rxY62vXFGpvgU+xX1Q3wKfVq6IUMvEyTpMHq7z5OTP3S01ohC9TtO5AN6EMVB6E8YE1oRI2yZj4bmYiNJZtHMxl8xdrCSCeA3A1QD+oqrnhmY3H1DVS5wYxJnhw8dElM5iPXwsIn4Ao2HUanpfVduSGlw3PBcTUTpjIggKZ+X2vLkA/gTgLBF5E8CTAH7gaFSUPKms2WPj2FU/KoZ/nkDuE/jnCap+VJy0Y1vqPkbNHxfXAyIXE5F+AH4I4F8BLABwe6iNiIiIHGYle95aEbkELpndpAQKr9nT0nL8eR6na/bYOHbVj4pR13+T8dsIoMMH4/WPilH7wEZHj21FeM2fltYWVDx//FmmaOuSXQ+IPOdJGIXFfxV6fQOA3wK4NmURERERZQgrt+ddC+BFVT0oIv8Lxn3192uSi9p24S0hCZTKmj02ju2fJ+iIkITO1wG018T+fbZ7bCti1fwB4Jp6QOROMeo0rVfViWZtycJzMRGlM96eR+Gs3J73/4UGTBcCuAzAEwDqnA2LkiKVNXtsHLsjym9ttPZEHttS9zFq/nikHhC507rQM6UAABGZDCMhBBERETnMyn8zu+qAzARQp6rPAchxLiRKmlTW7LFxbF9n39oTeWxL3ceo+eORekDkTpMBvCUizSLSDOC/AVwiIk0isiG1oREREaU3K4OmnSLyKIDvAFgpIidY3I/cLpU1e2wcu+LvRaFKNd1oqN3hY1vqPkbNH4/UAyJ3uhzAGQAuCS1nAJgB4JsAZqUwLiIiorRnZfDzHRjFbS9X1f0AhgC4x9GoKDnKy4H6euNZHhHja32980kgbB679oGNqPyyCL4OAGo8y1T5ZZG1JBA2j22p+/HlqJ9Vj2BuEAJBMDeI+ln1KB9fHnMdUSyq2hJrSXV8RERE6cw0EYTb8OFjIkpnXnn4mOdiIkpnXjkXU/LwNjtyjo0eC64AACAASURBVN1aSLH2T2GdJUpP/JkTERFRNKZ1mojiYrcWUqz9gZTVWeJtdOmJP3MiIiKKhbfnkTPs1kKKtT+QsjpLrKWUntz0M/fKLSE8FxNROvPKuZiSh1eayBl2ayHFs38S6ixReuLPnIiIiGLhM03kDLu1kGLtn8I6S5Se+DMnIiKiWDhoImfYrYUUa/8U1lmi9MSfOREREcXCQRM5w24tpFj7p7DOEqUn/syJiIgoFscSQYjI6QCeBDAcQCeAelX9t7BtpgJ4DsD/CTU9q6o1sfrlw8dElM688vAxz8VElM68ci6m5HHySlM7gLtUdSyAKQBuF5GiCNu9oarnhJaYA6ZMZLt2jMP1jGwd22S9l+vmNNRVoeAeP7LuExTc40dDXVXyju3hz42IiIjIjRwbNKnqblVdG/r+IIDNAPKcOl466qod09LaAoUeqx1j+T/BXbWOWloA1eP1jJIxcDI7tsl62+89hRrqqlCxsw4tAzqgArQM6EDFzrqkDJy8/LkRJVoq54yIiCi9JKVOk4gUAFgNYJyqHujWPhXAHwB8DGAXgLtVdWOsvjLplhDbtWPs1kqyw+zYJuvdVDenrwru8aNlQEev9uAhH5ofbHf22B7+3MjglVtC3H4uDq+PDRj5YhL4+CMRpTGvnIspeRxPBCEiA2AMjO7sPmAKWQsgqKoTAfwKwB+j9FEhIo0i0rh3715nA3YR27Vj7NZKssPs2CbrvVw3Z/uJvQdMsdoTemwPf25EiVRd3XPABBivq6tTEw8REXmbo4MmEcmGMWBqUNVnw9er6gFVPRT6fiWAbBEZGmG7elUtVdXSYcOGORmyq9iuHeNwPSNbxzZZ7+W6OfmHfX1qT+ixPfy5ESVSKueMiIgo/Tg2aBIRAfBrAJtVdVGUbYaHtoOInBeK5zOnYvIa27VjHK5nZOvYJuu9XDdn4ZkVCLT1bAu0Ge2OH9vDnxtRIqVyzoiIiNKPk1eaLgBwM4BpIvJuaJkhIreJyG2hba4B8J6IrAfwSwDXazIesvII27VjHK5nZOvYJuu9XDenvLIW9XmVCB7yQdR4lqk+rxLllbXOH9vDnxtRIqVyzoiIiNJPUhJBJJLbHz4mIrLDKw8fe+Fc3NBgPMO0fbtxhWnhQiaBICJrvHIupuRxPBEE2eTlnLlVVYDfb1xJ8vuN10RESVJebiTr7Ow0vnLARERE8eKgyc1SWWfJrqoqoK4O6AhljOvoMF5z4ESUdCJyuYi8LyIfisiPI6yfLSJ7u91K/c+piDMZvDwPRUREqcNBk5t5OWdufX3f2onIESLiA/DvAK4AUATgBhEpirDp71X1nNDyeFKDTBIvz0MREVFqcdDkZl7OmdsRpSZRtHYicsp5AD5U1Y9U9SiApwB8K8UxpYSX56GIiCi1OGhyMy/nzPVFqUkUrZ2InJIHYEe31x+H2sJdLSIbROQZETk9UkdeLzTu5XkoIiJKLQ6a3MzLOXMrotQkitZORE6RCG3haVOfB1CgqhMAvAzgiUgdeb3QuJfnoYiIKLU4aHKzVNZZsqu2FqisPH5lyeczXtc6X6uIiHr4GED3K0enAdjVfQNV/UxV/x56+RiAkiTFllRenociIqLU8qc6ADJRXu6NQVIktbUcJBGl3t8AjBKRMwDsBHA9gBu7byAiI1R1d+jllQA2JzfE5Og6lbJ2ExER9RWvNFng6hS1bg7OzbE5LZPfO7mKqrYD+D6Al2AMhp5W1Y0iUiMiV4Y2+6GIbBSR9QB+CGB2aqJ1Hms3ERFRPDhoMuHqFLVuDs7NsTktk987uZKqrlTVQlU9S1UXhtrmqeqfQt//i6oWq+pEVb1UVbekNuKerMxBTJ9u3MXctUyfHnk/q/MZnPcgIqLuRDX8eWB3Ky0t1cbGxqQdr6DA+D9vuGDQmKVMKTcH5+bYnJbJ751sE5E1qlqa6jjMJOtc3DUH0T1VeCDQ8/HO6dOBVat67ytizFt0yckxXre1Re/L6jGJKL155VxMycNBk4msrJ5/dLuIGLd3pJSbg3NzbE7L5PdOtnnlD3WyzsVW5iAkUn7APgifz+C8BxF55VxMycPb80y4OkWtm4Nzc2xOy+T3TpRgyaitFN4X6zkREVE4DppMuDpFrZuDc3NsTsvk906UYMmYgwjvi/MeREQUjoMmE64uleTm4Nwcm9My+b0TJZiVOYiyssj7ht+2l5MDZGfH7svqMYmIKLPwmSYiIhfxyn30yTwXNzSY11YKTwZRVgbcemvv/QBrdZqsHJOI0pdXzsWUPBw0UUZqqKtC9Uf12H5iB/IP+7DwzAqUV/ahEC//R0UO8cofap6LiSideeVcTMnD2/Mo4zTUVaFiZx1aBnRABWgZ0IGKnXVoqKuy2AHrMBElU1UV4Pcbt9v5/cbr8LpMxcWsv0RERM7hlSbKOAX3+NEyoKNXe/CQD80PtlvooID5iMkxXpndTNa5uKoKqKvr+36sv0REdnjlXEzJwytNlHG2n9h7wBSrvfeGzEdMlCz19fHtd+SIcQdtd9XVPQdM0bYjIiIKx0ETZZz8w74+tffekPmIiZKlw+JcRiSsv0RERInCQRNlnIVnViDQ1rMt0Ga0W+uA+YiJksVncS4jEtZfIiKiROGgiTJOeWUt6vMqETzkg6jxLFN9XqX17Hmsw0SUNBUW5zLCsf4SERElEhNBEBG5iFcePk7mubiqypiX6OgwrjxVVABbt/asy1RUBBw+zPpLRJQYXjkXU/L4Ux0AERFRLLW1xpII5eUcJBERUd/x9jwiInKc1fpIkWoyFRf3rsmUk9OzLXwZPBjIy+vZlpdnPQ7WcyIiou54pYmIiBwVXh+pqx400POqT3hNpo6OyDWaNm0yP+b+/cbS3a5dwE03HX8dLQ6r8RIRUebgM01ERC7ilfvo+3IutloP2u+3l2I8XuFxsH41EXnlXEzJw9vziIjIUVbrI6ViwBQpDtZzIiKicBw0ERGRo6zWR7JTk8kO1nMiIiIzHDQREZGjrNZHircmkx2s50RERFY4NmgSkdNF5FUR2SwiG0XkjgjbiIj8UkQ+FJENInKuU/EQEVFqWK0HXVsLVFYev+Lk8xmvi4p6bldUBGRnxz7mSScBI0f2bBs5Eli2zDwO1q8mIqJwjiWCEJERAEao6loRGQhgDYB/VNVN3baZAeAHAGYAmAzg31R1cqx+mQgiDCs1EqUVrzx8zHMxEaUzr5yLKXkcu9KkqrtVdW3o+4MANgPIC9vsWwCeVMP/ADgpNNgiK7ry4ra0AKrH8+KyoAgReYCdWkjh+4bXZCoudiZmIiLKTEl5pklECgBMAvB22Ko8ADu6vf4YvQdWFE119fFCIl2OHDHaiYhczM6cT6R9d+3quc2mTRw4ERFR4jg+aBKRAQD+AOBOVT0QvjrCLr3uFxSRChFpFJHGvXv3OhGmNzEvLhF5lJ05n0j7RmKlCC4REZEVjg6aRCQbxoCpQVWfjbDJxwBO7/b6NAC7wjdS1XpVLVXV0mHDhjkTrBcxLy4ReZSdOR/OCxERUbI5mT1PAPwawGZVXRRlsz8BuCWURW8KgFZV3e1UTGmHeXGJyKPszPlwXoiIiJLNyStNFwC4GcA0EXk3tMwQkdtE5LbQNisBfATgQwCPAahyMJ70w7y4RORRduZ8Iu0bSXiqciIionj5nepYVf+KyM8sdd9GAdzuVAwZobycgyQi8pyu01Y8FRMi7dvW1jMZRFERsHFj4uMmIqLM5NigiYiIKBY7cz6cLyIiomRKSspxIiJKHRG5XETeF5EPReTHEdafICK/D61/O1QmgoiIiEI4aCIiSmMi4gPw7wCuAFAE4AYRCX/a57sAvlDVswE8DOCB5EZJRETkbhw0ERGlt/MAfKiqH/1f9u493o66vvf/652dqAQUlORR5ZIdvNQeELmlKmItutP+BBR6qq3YrUDr+aUmVuVY7a82v4LgSU+11mKtid0VFUyON8T+ULySerdSA3IRUQ9qEqKcEsAGMRRJ8vn9MbOSlZW116zZM7Nm1lrv5+Mxj73Xdy7rM5Od71rfmc/3+42IXwIfBs7p2OYc4Ir096uAqXQEVDMzM8ONJjOzUXckcGfb621pWddtImIXsAM4vPNAnmjczMzGlRtNZmajrdsTo5jDNp5o3MzMxpYbTWZmo20bcHTb66OAn862jaT5wKHAfQOJzszMbAgomSppeEjaDmyp6e0XAffU9N5ZHNvcOLa5cWxzlxXfZESU9hgnbQT9AJgCfgJ8C/iDiLitbZtXA8dHxKsknQv8bkT8fsZx51oXN/3fJ4vjr5fjr88wxw754y+1LrbhN3SNpjpJ2hQRy+qOoxvHNjeObW4c29zVEZ+kM4HLgAngfRGxRtKlwKaIuEbSo4APAieRPGE6NyJ+VFEsjf73yeL46+X46zPMscPwx2/18+S2ZmYjLiI+DXy6o+yitt//E/i9QcdlZmY2LNynyczMzMzMrAc3mvKZqTuAHhzb3Di2uXFsc9f0+Ko27Ofv+Ovl+OszzLHD8MdvNXOfJjMzMzMzsx78pMnMzMzMzKwHN5q6kDQh6duSPtVl3QWStku6KV3+24Bj2yzp1vS9N3VZL0l/L+kOSbdIOrlBsZ0uaUfbtbuo23Eqiu0wSVdJ+p6k2yWd2rG+zuuWFVst103SU9ve8yZJ90u6sGObWq5bn7HV+ff23yXdJuk7kj6Ujk7Xvv6Rkj6SXrfrJS0dVGx1kfQ+SXdL+k7dscyFpKMlfTH9P3qbpNfVHVMekh4l6d8k3ZzGf0ndMeXV67O56bI+H5su63Oqyfr5vDDrh0fP6+51wO3AY2ZZ/5GI+JMBxtPpeREx21wDZwBPSZdnAuvSn4PSKzaAr0bECwcWzT7vBD4bES+R9AhgYcf6Oq9bVmxQw3WLiO8DJ0LyZYVkjp9PdGxWy3XrMzao4bpJOhJ4LXBsRDwo6aPAucAH2jZ7JfCziHiyknmR3gq8dJBx1uADwD8AV9Ycx1ztAv40Im6U9GjgBklfiIjv1h1Ynx4Cnh8RD0haAHxN0mci4pt1B5ZD1mdz02V9PjZZP59TjZTj88KsJz9p6iDpKOAs4L11xzJH5wBXRuKbwGGSnlB3UHWS9BjgucDlABHxy4j4j47NarlufcbWBFPADyOiczLTJvy9zRZbneYDBymZWHYh8NOO9ecAV6S/XwVMSdIA4xu4iPgKyRxQQyki7oqIG9Pff07y5f3IeqPqX/p/9IH05YJ0GZpOzSPw2Ty0huhzqh9N/LywIeFG04EuA/4M2NNjmxenqUhXSTp6QHG1BPB5STdIWtFl/ZHAnW2vtzG4D/as2ABOTdNDPiPpuAHF9URgO/D+NLXjvZIO7timruvWT2xQz3Vrdy7woS7ldf69tcwWG9Rw3SLiJ8Dbga3AXcCOiPh8x2Z7r1tE7AJ2AIcPIj4rLk2nPAm4vt5I8knT224C7ga+EBHDFH8/n81N1s/nY1P1+zk1DHp9Xpj15EZTG0kvBO6OiBt6bPZJYGlEPB24jn13iwfltIg4mSQt6tWSntuxvtvd6kHdTcyK7UZgMiJOAN4F/POA4poPnAysi4iTgF8Af96xTV3XrZ/Y6rpuAKSpGGcDH+u2ukvZwO5eZ8RWy3WT9FiSJ0nHAEcAB0t6eedmXXYdmrv+40zSIcDHgQsj4v6648kjInZHxInAUcAzJD2t7pj60ednc9NlfT42WT+fU42X8XlhlsmNpv2dBpwtaTPwYeD5kta3bxAR90bEQ+nLfwJOGWSAEfHT9OfdJDm5z+jYZBvQ/vTrKA5MDaoltoi4v5UeEhGfBhZIWjSA0LYB29ruql5F8gHQuU0d1y0zthqvW8sZwI0R8e9d1tX295aaNbYar9ty4McRsT0iHgauBp7dsc3e65am8B3KEKeujYu0L9DHgQ0RcXXd8cxVmlr1JeAFNYfSr8zP5qbr47O7yfr5DB0GvT7LzDK50dQmIt4UEUdFxFKSR7j/EhH73SHu6K9xNkle+0BIOjjtgEz6aPy3gc6RqK4BzlPiWSSpQXc1ITZJj2/125D0DJK/v3urji0i/g9wp6SnpkVTQGfn7VquWz+x1XXd2ryM2dMZarlubWaNrcbrthV4lqSF6ftPcWA9cQ1wfvr7S0jqGj9parD03/Jy4PaIeEfd8eQlabGkw9LfDyJp3H+v3qj6089nc5P1+dndWH1+hg6DXp9lZpk8el4fJF0KbIqIa4DXSjqbZCSl+4ALBhjKrwCfSL8Hzgf+V0R8VtKrACLiPcCngTOBO4CdwB82KLaXACsl7QIeBM4d4BfF1wAb0sfzPwL+sCHXrZ/YartukhYCvwX8cVtZI65bH7HVct0i4npJV5GkB+4Cvg3MdNQjlwMflHQHST1ybtVx1U3Sh4DTgUWStgEXR8Tl9UaVy2nAK4Bb035BAH+RPsUcBk8ArlAyetg84KMRMXRDdw+prp+P9YaU2wGfUzXHk0u3zwuzvOSbm2ZmZmZmZrNzep6ZmZmZmVkPbjSZmZmZmZn14EaTmZmZmZlZD240mZmZmZmZ9eBGk5mZmZmZWQ9uNNnIkXS6pAOG0p2tvIT3+x1Jx7a9/pKkZX3s94Qy4knnXxm24WvNbAhJukDSEX1s9wFJL+m3vIS4/qLt96WS+poHSdKFks4r4f3/RNJQDcNtZvm40WRW3O8Ax2ZudaDXA/9U9M0jYjtwl6TTih7LzCzDBUBmo6kGf5G9yf4kzQf+CPhfJbz/+4DXlnAcM2soN5ps4NLZ0a+VdLOk70h6aVp+iqQvS7pB0uckPSEt/5KkyyR9I93+GWn5M9Kyb6c/n9rrfbvE8D5J30r3Pyctv0DS1ZI+K+l/S3pb2z6vlPSDNJ5/kvQPkp4NnA38jaSbJD0p3fz3JP1buv1vzBLGi4HPpseekPR2SbdKukXSa9LyzZL+StK/Stok6eT02vywNZFr6p+B6X7P38wsfSLzPUlXpPXOVekkoF3r4/QJ0TKSSU5vknSQpIvSevQ7kmaUzuDa5/v3qvPf2lmHSloo6aNprB+RdL2kZZL+GjgojWlDeviJtJ6+TdLnJR3UJYTnAzdGxK70+E+WdF362XSjpCcpyVD4cvq+P5D015Km09hubdX5EbET2Nz6fDKz0eNGk9XhBcBPI+KEiHga8FlJC4B3AS+JiFNI7tqtadvn4Ih4NrAqXQfwPeC5EXEScBHwVzliWA38S0T8OvA8kkbPwem6E4GXAscDL5V0tJJ0lL8EnkUyq/ivAUTEN4BrgDdGxIkR8cP0GPMj4hnAhcDFnW8u6RjgZxHxUFq0AjgGOCking5saNv8zog4Ffgq8AHgJWkcl7ZtswmYrXFmZjabpwIzab1zP7Bqtvo4Iq4iqWum0/ruQeAfIuLX07r8IOCF/bxpH3V+tzp0FUm9+XTgLcApABHx58CDaUytm0dPAd4dEccB/0Fyk6rTacANba83pPucADwbuCstPwF4HclnwiuAX01jey/wmrb9XQ+bjbD5dQdgY+lW4O2S3gp8KiK+KulpwNOAL6Q3KifY94EF8CGAiPiKpMdIOgx4NHCFpKcAASzIEcNvA2dLekP6+lHAkvT3jRGxA0DSd4FJYBHw5Yi4Ly3/GPCrPY5/dfrzBmBpl/VPALa3vV4OvKd1x7P1Pqlr0p+3AodExM+Bn0v6T0mHRcR/AHfTzJQZM2u2OyPi6+nv60lSzD5L7/q43fMk/RmwEHgccBvwyT7e96kZ79GtDn0O8E6AiPiOpFt6HP/HEXFTl2O0ewJwO4CkRwNHRsQn0uP/Z1oO8K2IuCt9/UPg8+n+t5LcdGu5m/SGmpmNHjeabOAi4geSTgHOBP6npM8DnwBuS5+odN2ty+u3AF+MiP8qaSnwpRxhCHhxRHx/v0LpmcBDbUW7Sf6f9J1ykmodo7V/pwdJGmrt8XSeY+ex9nTEtqft2I9Kj2lmlke3ulX0ro8BkPQoYC2wLCLulPRm9q/Xeu6e8R7d6tA89XBnPd4tPa+9Hu517M56t71Obq/fXQ+bjTCn59nApaluOyNiPfB24GTg+8BiSaem2yyQdFzbbq1+T88BdqRPgg4FfpKuvyBnGJ8DXtPKv5d0Usb2/wb8pqTHKuk83J7q8XOSp155/ID973x+HnhVemwkPS7n8X4V6Gu0KDOzNkta9S7wMuBr9K6P2+u7VoPjHkmHkKQO9yurzu/ma8Dvp9sfS5Iu1/JwmvKXx+3AkwEi4n5gm6TfSY//yFb/rhxcD5uNMDearA7HA/8m6SaSvkX/IyJ+SfKB+1ZJNwM3keSUt/xM0jeA9wCvTMveRvKk6uskqR15vIUkne8WJUPTvqXXxhHxE5I+U9cD1wHfBXakqz8MvFHJgBJPmuUQncf7BfBDSU9Oi94LbE3juRn4g5zn8zzg2pz7mJndDpyfpro9DliXUR9/AHhPWn8/RDIC6K0kg9F8q9837aPO72YtSUPrFuD/AW5hXz08Q1J/bpht5y4+Azy37fUrgNemx/8G8Pgcx4Kkj9R1OfcxsyGhiNkygsyaQdKXgDdExKaa4zgkIh5InwZ9AnhfK/99jsf7r8ApEfH/lhDbV4BzIuJnRY9lZuMhTWv+VDqIQ+NJmgAWRMR/pjeoNpIMyvDLAsf8BPBnEfG/C8Z2EvD6iHhFkeOYWXO5T5NZ/94saTlJSsrnSe6szllEfELS4UWDkrQYeIcbTGY24hYCX0zT8ASsLNJgSv05yYAQhRpNJIMF/WXBY5hZg/lJk5mZmZmZWQ9D96Rp0aJFsXTp0rrDMDOrxA033HBPRCyuO44srovNbJQNS11sgzN0jaalS5eyaVOtXVvMzCojaUvdMfTDdbGZjbJhqYttcDx6npmZmZmZWQ9uNJmZmZmZmfXgRpOZmZmZmVkPtTeaJD1V0k1ty/2SLqw7LjMzMzMzM2jAQBAR8X3gRNg7cd1PSCYONTMzMzMzq13tT5o6TAE/jAiPWGJmZmZmZo3QtEbTucCH6g7CzGxUSDpa0hcl3S7pNkmv67LN6ZJ2tKVJX1RHrGZmZk3VmEaTpEcAZwMf67JuhaRNkjZt37598MGZ2cjbcOsGll62lHmXzGPpZUvZcOuGukMqyy7gTyPivwDPAl4t6dgu2301Ik5Ml0sHG6JZeVZdu4r5l85Hl4j5l85n1bWraotlhOsVs7FTe5+mNmcAN0bEv3euiIgZYAZg2bJlMejAzGy0bbh1Ays+uYKdD+8EYMuOLaz45AoApo+frjO0wiLiLuCu9PefS7odOBL4bq2BmVVg1bWrWLdp3d7Xu2P33tdrz1o70FhGuV4xG0eNedIEvAyn5plZDVZvXL33i03Lzod3snrj6poiqoakpcBJwPVdVp8q6WZJn5F03EADMyvJzA0zucqrNC71itm4aESjSdJC4LeAq+uOxczGz9YdW3OVDyNJhwAfBy6MiPs7Vt8ITEbECcC7gH+e5RhOlbZG2x27c5VXaRzqFbNx0ohGU0TsjIjDI2JH3bGY2fhZcuiSXOXDRtICkgbThog44OZURNwfEQ+kv38aWCBpUZftZiJiWUQsW7x4ceVxm+U1oYlc5VUa9XrFbNw0otFkZlanNVNrWLhg4X5lCxcsZM3UmpoiKo8kAZcDt0fEO2bZ5vHpdkh6Bslnw72Di9KsHCtOWZGrvEqjXK+YjSM3msxs7E0fP82pR526X9mpR506Kp21TwNeATy/bUjxMyW9StKr0m1eAnxH0s3A3wPnRoQH3bGhs/astaxctnLvk6UJTbBy2cqBDwIBSb0y86IZJg+dRIjJQyeZedHMqNQrZmNHw/a5uGzZsti0aVPdYZjZCOkccaulji9bkm6IiGUDfdM5cF1sZqNsWOpiGxw/aTKzsdekEbfMqtCk+YIci5kNoybN02RmVosmjbhlVrYmzRfkWMxsWPlJk5mNhV53lJs04pZZ2Zo0X5BjMbNh5UaTmY281h3lLTu2EMTeO8qthlOTRtwyK1uT5gtyLGY2rNxoMrORl3VHuUkjbpmVrUnzBTkWMxtWbjSZ2cjr547y2rPWsuuiXcTFwa6LdrnBZCOjSfMFORYzG1ZuNJnZyPMdZRtnTZovyLGY2bDyPE1mNvI6R8mC5I5yE78gDcvcIK6LzWyUDUtdbIPjJ01mNvIGcUfZ871YUcP8N7Tq2lXMv3Q+ukTMv3Q+q65dNeu2ec9z+ZXL0SXauyy/cnlpcQ/zNTezwfKTJjOzgsp8kjUsdzddF5drmJ6Gdlp17SrWbVp3QHm3wVTynufyK5ez8ccbDyifOmaK6867rlDcw3zNrXrDUhfb4LjRZGZW0NLLlrJlx5YDyicPnWTzhZtzHWtYPqhdF5erzL+hQZt/6fyuE0FPaIJdF+3aryzveeoSzfq+cXGx7y/DfM2tesNSF9vgOD3PzBpjWFNlPN+LFTXMf0PdGkyzlTfpPJsUi5k1nxtNZtYIWRPQNplH57OihvlvqDW/WT/lTTrPJsViZs3nRpOZNULWBLRN5vlerKhh/htaccqKvsvznufUMVO5yvMY5mtuZoPnRpOZNcIwp8p4vhcrapj/htaetZaVy1bufbI0oYmug0BA/vO87rzrDmgglTEIxFxiMbPx5oEgzKwR3Ck7MSydj10Xm9koG5a62AbHT5rMrBGcKmNWnaoHWRnWQVyGma+52WDNrzsAMzNgb0rM6o2r2bpjK0sOXcKaqTVOlTErqHM+otYgK0Ap/7+qPr4dyNfcbPD8pMnMBibrzuj08dNsvnAzey7ew+YLNx/w4V/lnVXftbVRVfUgK8M8iMuw8jU3Gzw/aTKzgSh6Z7TKO6u+a2ujrOpBVoZ5EJdh5WtuNnh+0mRmA1H0zmiVd1Z919ZGWdXzEXm+o8HzNTcbvEY0miQdJukqSd+TdLukU+uOyawIp3odqOid0SrvrPqurY2yqgdZ8SAug+drbjZ4jWg0Ae8EPhsRvwacOny9JgAAIABJREFUANxeczxmc9ZK9dqyYwtB7E31GveG0+MOelyu8k5V3ln1XVsbZVXPR+T5jgbP19xs8Gqfp0nSY4CbgSdGH8F4bhBrOs831N2ity3i3gfvPaD88IMO554/uydz/85+R5DcWS3ji0KVx85rWOYGcV1sZqNsWOpiG5wmPGl6IrAdeL+kb0t6r6SD2zeQtELSJkmbtm/fXk+UZn1yqld39z14X67yTlXeWfVdWxt1VacML79yObpEe5flVy6vLRanR5tZFZrwpGkZ8E3gtIi4XtI7gfsj4i+7be+7m9Z0TX/StOHWDZXNhdTr2E2/Lk0xLHc3XRcPj6qfpC6/cjkbf7zxgPKpY6a47rzrBhpLk54a23AblrrYBqcJT5q2Adsi4vr09VXAyTXGY1ZIkzvoVtnfKuvYTb4uZqOs6tEhuzWYZiv3nFFmNqxqbzRFxP8B7pT01LRoCvhujSGZFdLkVK86h+1u8nUxG2VNShn2nFFmNqxqbzSlXgNskHQLcCLwVzXHY1bI9PHTbL5wM3su3sPmCzfnahgUzcfvtb+H7TYbP00aHdJzRpnZsGpEoykiboqIZRHx9Ij4nYj4Wd0xmdWhaPpc1v51DtvtodjN6lF1auzUMVN9l3vOKDMbVo1oNJlZomj6XNb+VX6hyDq2+xqY1aPq1NjrzrvugAZSt0EgBhGL04DNrCq1j56Xl0dsslE275J5BAf+nxRiz8V7Stk/a/S8IqPr9dq36LmNi7JHbJJ0NHAl8HhgDzATEe/s2EYkk4yfCewELoiIG3sd13WxmY0yj55nnfykyaxBiqbPdT7p6Vbeq79V0RS6Xsd2X4Pa7AL+NCL+C/As4NWSju3Y5gzgKemyAlg32BBHU5PmC1p17SrmXzofXSLmXzqfVdeuKvX4VZ5rk65jk/i6mA2WG01mDVI0fe7BXQ/mKu9UZQqd+xrUIyLuaj01ioifA7cDR3Zsdg5wZSS+CRwm6QkDDnWkNKkP36prV7Fu0zp2x24Adsdu1m1aV1rDqc6pDMaVr4vZ4LnRZNZF0Tt4ve7q9lpXNB9/T3RPc5utvFOVI+C5r0H9JC0FTgKu71h1JHBn2+ttHNiwshya1Idv5oaZXOV51TmVwbjydTEbvPl1B2DWNJ0zyrfu4AF9fcFv3dVtad3VbZlt3dqz1u59j7k2JOZpXtcG0jz1d39kyaFL2LJjS9fyMhQ5NytG0iHAx4ELI+L+ztVddjmgA5qkFSTpeyxZ4rTKXpo0BH/rCVO/5Xl5KoPB83UxGzw/aTLrUPQOXq+7ulXf8T1o/kG5yjs5hW40SVpA0mDaEBFXd9lkG3B02+ujgJ92bhQRM+n0EMsWL15cTbAjokl9+CY0kas8rzqnMhhXvi5mg+dGk1mHonfwet3VrfqOb2djL6u8k1PoRk86Mt7lwO0R8Y5ZNrsGOE+JZwE7IuKugQU5gpp0A2LFKStyledV51QG48rXxWzw3Ggy61D0Dl6vu7r93PEt0p+qn9izjt9rBDwbSqcBrwCeL+mmdDlT0qskvSrd5tPAj4A7gH8Cyh1abQw16QbE2rPWsnLZyr31zIQmWLls5d6U4KKqPNcmXccm8XUxGzzP02TWobNPEyR38Pr9QOrs09SyctlKfnDvD9j4440HrGtNBFn0vbP2L3p8q96wzA3iutjMRtmw1MU2OH7SZNah6B28Xnd177jvjq77tMqL9qfKit0jLpkNTtXz6Cy/cjm6RHuX5Vcury0WM7NR5ydNZnOw4dYNrN64mq07trLk0CWsmVrTV6Nq3iXziAMHJUOIPRfvyVxfVD/Hn+u5WTmG5e6m6+Leqn6qu/zK5T2fWg8yFrNRNCx1sQ2OnzSZ5VRkUsGsPkdVj4iUdXxPmGhWjqqf6nZrMM1W7ifMZmbFudFkllORLyBZIx5VPSJS1vH95cqsHE2aR6dJsZiZDSs3msxyKvIFZPr4aU496tT9yk496tS9KTJVj4iUdXx/uTIrR5Pm0WlSLGZmw8qNJrOcinwBWXXtqgPSZzb+eCOrrt03wnPVQ373Or6/XJmVo+qnxlPHTPVd7jl9zMyKc6PJLKciX0BmbpjJVT5o/nJlVo6qnxpfd951BzSQug0CMYhYzMzGgUfPM5uDuY4wp0s067q4OAodu2hsZe1vxQzLiE2ui81slA1LXWyD4ydNZnMw1xS61txNs5UXHb2ujNHvqk4PNBsXVc+NlOf4eWNZde0q5l86H10i5l86f78U4m6Oe/dx+80Zddy7jystlg3rVrH0jfOZ92ax9I3z2bCudyxmZlUordEkaZmk/y7pbyRdKun3JT2urOObjYIVp6zoWV509DqPfmfWDFUP35/n+HljWXXtKtZtWsfu2A3A7tjNuk3rZm04Hffu4/juPd/dr+y793y3a8Mpbywb1q1ixU/WseWQ3YRgyyG7WfGTdW44mdnAFW40SbpA0o3Am4CDgO8DdwPPAb4g6QpJ7kVuBqw9ay0rl63c+2RpQhOsXLaStWetBYqPXufR78yaoeobGHmOnzeWvH0vOxtMvcrzxrL6RzPsXLB/2c4FSbmZ2SCV8aTpYOC0iHhxRPxVRLw3Iv4hIl4bEacAfwc8pYT3Mdtr+ZXL90sFWX7l8v3WZ6Z/bNgAS5fCvHnJzw2DS5tZe9Zadl20i7g42HXRrr0NJig+el0Zo99VnVJkcyfpsZKOk/RESU6vbrCqb2DkOX7eWFpPmPotzyNvLFsP7v6es5WbmVWl8IduRLw7Ih7ssf6miOg+dbnZHCy/cnnXYbtbDafM9I8NG2DFCtiyBSKSnytWlNZwKpKWc+ZTzsxV3qno6HdVpxRZfpIOlfQXkm4Fvgn8I/BRYIukj0l6Xr0RWjdVD9+f5/h5Y8nqe1lE3liW/KL7e85WbmZWlTL7NB0j6R2SrpZ0TWvpc9/Nkm6VdJMkD8dkPXU2mDrLM9M/Vq+GnfuvZ+fOpLwERdJyPv2/P52rvFPRoYXdJ6qRrgLuBH4jIp4aEc+JiGURcTTw18A5kl5Zb4jWqerh+/McP28sWX0vOx276Ni+y/PGsuaJK1j48P5lCx9Oys3MBml+icf6Z+By4JPAnjns/7yIuKfEeGzIzXXo68z0j61b2XA8rJ6CrYfCkh2wZiNMf2fwaTNl7tsyfQtMXwZsBZYAi4Hj+9vXfaKaJyJ+q8e6G4AbBhiO9alVV1U1fH+e4+eNpZUyPHPDDLtjNxOaYMUpK/ZLJW5326tvO2AwiGMXHcttr76tcCzTK9fCuqQP09aDd7PkFxOseeKKpNzMbIBKm6dJ0vUR8cw57rsZWNZPo8lzg4yHVppY+1OPhQsWMvOiGV5+9ctn3S8uDpZetpQtO7YcsG7y0Ek2X7iZDc9bxIpn38vOR+xbt/CXMPONw5n+YvF2+6K3LeLeB+89oPzwgw7nnj/rffys2DO1Ug/bn6QtXAgzMzCd/WWt8PtbYb3mBpH0dGApbTe8IuLqAYW2H9fFZjbKPE+TdSqzI/E7JV0s6VRJJ7eWPvcN4POSbpDkZ+7WM01s6piprvu0yrPSP1YvZ78GEySvV+8/lkQtCqf0FEw9rDqlyOZO0vuA9wEvBl6ULi+sNSjraawGVal4cB0zs7qV2Wg6Hvi/SXLs/zZd3t7nvqdFxMnAGcCrJT23faWkFZI2Sdq0ffv2EkO2OvX6QtErTey68647oOE0dcwU1513HZDdr2frrvu6H7utvMiXnfse7H782crbFe2TxNZZ0uhmK+/2/o89n8kHJlDA5AMTzDz2fE9w2wzPSvsynR8Rf5guf1R3UNbdWA2qUvHgOmZmTVBmet73gKdHxC8LHufNwAMR0bXB5ZSQ0dAr/W76+OlK08Qy0/cyYsuy6C2P5t49DxxQfvi8Q7jnL39eKPZMS5cmX1g6TU7C5s3Z+xdM77PiZksJkXQ58LcR0X1SnAFzXdzbWKW6Fq13zBrI6XnWqcwnTTcDh+XdSdLBkh7d+h34beA7JcZlDZQ1SluVaWKZ6XtFR5Db+Yt85WVasyZp5LRbuDAp70fFIwtaIVcA/yrp+5JuSUccvaXuoKy7sRpUpeATbjOzYVBmo+lXgO9J+lzOIcd/BfiapJuBfwOujYjPlhiXNVDWF4rCaWo98uunj5/m/BPO3zvnyIQmOP+EfSlo/XzZ6ZW+d98juz+9na28VNPTyVOhyUmQkp+dT4l69T3wl58mex/wCuAF7OvP9KJaI7JZVT1PU6MsmeWcZis3MxtCZQ45fvFcdoqIHwEnlBiHDYElhy7pmrrS/oVi+vjpufWl6Uwxa+XXA0xPs+HWDVxx8xV7Z7ffHbu54uYrOG3JaUwfP50ZW2f6XquvQivmJb+YYMshB85WP7DJGKenZ0+ly7g2LFnSPc3GX36aYGtE9DX3ndVvzdSarmm+Izmoypo13dN6+33CbWY2BMp80rQVuD4ivhwRXyZ5atTl25dZxaO0ZaSYFU0NzNy/yZMxZqXfFU3vsyp9T9L/kvQySb/bWuoOyror/LR8mPTzhNvMbMiVORDEJuDZrYEgJD0C+HpE/Hopb5By5+PRMdfJazPNm5eM4NRJgj17mHfJPIID1wux5+I9mbH1tf+6Vc2cjDHj2gDJ06jVq5OUvCVLkgaTv/wMTI+BIN7fZfOoawQ918VmNso8EIR1KvNJ0/z2kfPS3x/RY3sbc9PHT7P5ws3suXgPmy/cXN4d2Iz8+n76Gkyv+zqb37CNPW8ONr9hG9Prvt51u1n3f8xpbP7YUey5VGz+2FFMP+a0vGcxd736LPXT92B6Ohnxas+e5Ge//aGsUm3DjP+hhxw3oFH/Hxs1J1We69Kga2hmzVZmo2m7pLNbLySdA9xT4vHN+pORYpaZGrhqFaxbB7vTfkm7dyevV63qb/865yzJeu8i6Xeei6VWkq6QdFjb68emE97aOGrQ/8dGzUmV57o06BqaWfOVmZ73JGADcERatA14RUT8sJQ3SDklxPqSkWLWMzVw/vx9DaZ2ExOwa1f2/nXOWdLPe881/c5zsQxEj/S8b0fESVllg+K6uGYN+v/YqDmp8lyXBl1Dax6n51mn0hpNew8oHZIet5JZPP1BbZWTZl/Xz/+XfvoN9ZLVqOm1vuh791LlsW2vHo2mm4HTI+Jn6evHAV+OiOMHHSO4Lq5dg/4/9tPPc3DB5LguDbqG1jxuNFmnwul5kl4uae9xIuKB9gaTpCdJek7R9zEbmNkaTb0aU+2KzFmSlS6Stb7K+VI8F0vd/hb4hqS3SLoU+Abwtppjsro06P9jo+akynNdGnQNzaz5yujTdDjwbUnvk/RqSb8v6TxJl0r6MsmH+r+X8D5mg3HwwfnKOxXpN5Q1JHidQ4Z7OPJaRcSVwItJ6tPtwO9GxAfrjcpq06D/j5VOIZE7mBzXpUHX0MyGQEQUXoAJ4LeANwP/CFwG/DGwpIzjty+nnHJKjJP1t6yPyb+bDL1ZMfl3k7H+lvV1h7TP+vURk5MRUvJzfc7YsvYvevxeVq6MmJiIgOTnypX71klJeecilRN7r3VZ711GbEVUeWyLiAhgU+xfvx4SGfViP9uUvYxbXdxIDfr/2KjPqjzXpUHX0Jqlsy724qX2APIu4/RBvf6W9bFwzcLgzexdFq5Z2IyG0/r1EQsXxn5f3Bcu7P8DJ2v/osfvZeXK6NrwaDWcJie7r5+cLB5b1r5Z75213oZel0bTRpLUvOcCB7eVPxF4JfA54CXt+3Ts/z7gbuA7s6w/HdgB3JQuF812rPZlnOpiMxs/bjR56VzKHHLcSrZ642p2Prx/KtbOh3eyeuPqmiJqk5UmVnT/osfvZWamd3lWykaR2Iqm1zmdZOxExBRJw+mPgdsk3S/pXmA98Hjg/Ii4qschPgC8IONtvhoRJ6bLpWXEXZcN61ax9I3zmfdmsfSN89mwblWNwTRnDqDc1yVv7MuXJ/0+W8vy5bNvu2pVMkqplPxcVXIsZmZVqLvVlncZp7uberP2e8rUWvRmZe9ceXB9pIkV2b/o8XvpdtzW0lIkha7IeWe9dz/rbahRwd1NYCm9nzR9Ku8xm1gXr1+7Mhau3r++XLiaWL92ZfbOpQdT4dPyvKHkvS55Y5+a6l6vTU0duG3Wk/6isZiVpIq62MtwL37S1GCNGpHogCD6GHWo193BrP2rHNVoYiK7fHo6madjz57kZ/uQ30XOvZ99e713P3xX1vI7VdLNkj4j6bi6g5mr1T+aYeeC/ct2LkjKBx9MhU/L84aS97rkjX3jxv7Ls570F43FzKwipTWaJD1S0h9I+gtJF7WWso4/jho1IlGnrDSxrKGx60xDW7EiX3mnIude9LyKDkludqAbgcmIOAF4F/DPs20oaYWkTZI2bd++fWAB9mvrwV0mpe5RXqmtW/OVVyj3daky9m4Th/cqb9B1NLPxVuaTpv8POAfYBfyibbE5mj5+mpkXzTB56CRCTB46ycyLZpg+PueTh0qCm07uDE5OJnnpk5PJ69ZTkay7g1n7Z60vYu1aWLly35OliYnk9dq11Z970fOqsy+YjaSIuD8iHkh//zSwQNKiWbadiYhlEbFs8eLFA42zH0t+0f0p8mzllWrQHEC5r0vdT/oHFYuZWQ7zSzzWURGR1dnYcpo+froZjaRupqdn/7Lfz93BXvv3s76ItWv7byTlVeWd0axj+67sSJM0AfwKbXV3RBT6x5X0eODfIyIkPYPkZtq9hQKtyZonrmDFT9btl4q28OGkfPDBrEme8rbfxKhrHqW81yVv7FNT3VPxpqYOLFuxAtat615eRixmZlUpq3MUMAMcX3UnrCZ2PrYuRnlo7CLDhhft1OwhyUces3Q+Bl4D3APcBtyaLrd027Zjvw8BdwEPA9tIhil/FfCqdP2fpMe8Gfgm8OysY0aD6+L1a1fG5BsmQhcTk2+YqGcQiL3BNGfQltzXJW/snYNBdBsEoqXXPHllxGJWgtnqYi/juygiCjW6JN0KBMmdz6cAPwIeApS0yeLphd6gw7Jly2LTpk1lHtKq0Opb03l3sKwUuzotXZr0Feo0OZkM3NDr3Fev7r1vlqzrOsrXfUxIuiEilnUpvwN4ZkQ04imQ62IzG2Wz1cU2vsro0/RC4EXAGcCTgd9OX7fKbRz103cna5S3vHN5tKtyBLmsFLhe5140fa7OvmBWtztJJqG1EbXh1g0svWwp8y6Zx9LLlrLh1ox6K089l7dOzLt9nvq66ljMzKpQ1iMr4IP9lBVdmpoSYjllpanlncsjz7GLKpIC5/Q5y0BHSgjw+nS5HPga8Ka2stdHj/qyysV1cbnW37I+Fq5ZuP9cSmsWxvpbZqm38tRzeevEvNvnqa+rjsWsJJ11sRcvhdPzWiTdGBEnt72eAG6NiGNLeYOUU0JGRFaK2/z53YegnZiAXbuKHbuoIilwTp+zDJ0pIZIu7rF5RMSlAwjrAK6Ly7X0sqVs2XFgvTV56CSbL9zcZYel/ddzeevEvNvnqa+rjsWsJE7Ps06F0/MkvUnSz4GnS7o/XX4O3E0yDLnZgbLS1LLm8uiVrlH1CHJFUuCcPmc5RcQlEXEJ8N3W721lt9cdn5Vj647u9dNs5bnqubx1Yt7yPHMvVR2LmVlFCjeaIuJ/RsSjgb+JiMeky6Mj4vCIeFMJMdooetzjepdL3ddL2RO4DmJej+np5C7nnj3JzzyNniL72jjrVp+6jh0RSw7tXj/NVp6rnstbJ+YtzzP3UtWxmJlVpMzJbT8m6eSO5UmSypwLysbFwQfPXp41geuaNUnKWzvP62FDStIZkt4FHCnp79uWD5BMJm4jYM3UGhYu2L/eWrhgIWumZqm38tRzeevEvNvPNsdSt/KqYzEzq0pZnaNI5vf4JbAJuCH9/VskQ5D/dsa+E8C3gU9lvY87H48IKbp2HJay12ftG+F5PWxoceBAECcAFwBbgPPblt8FHhsZdWZVi+vi8q2/ZX1M/t1k6M2Kyb+bnH0QiL075Kjn8taJebfPM/dS1bGYlaCzLvbipcyBID4MvCUibktfHwu8EXgLcHVEnNhj39cDy4DHRMQLe72POx8PkVWrkv46u3cnaRorVsDatcm6rM69vdZD8Y7BGzYkT6a2bk3SPNasOXA49F7rzSrSY56mBRHxcB0xdeO62MxGmQeCsE5lpuf9WqvBBBAR3wVOiogf9dpJ0lHAWcB7S4zF6rZqFaxbt68j8O7dyevW3B1ZKRe91p95Zvf3nK28U1afqKz1ZgMk6VZJtwA3SLqlc6k7vqFXZD64LFXPL5Tn+MuXJ+fYWpYv733sI4/cf/sjjywvFjOzYVTWIyvgI8A64DfTZS3wUeCRwLd67HcVcApwOk7PGx2tNI3OZWJi3zZZKRezrS8611HW/p5LyWrEgel5k+nytnQ5Pl3+GrgoMurMqpaRqIuLzAeXper5hfIcf2qq+3lOTXU/9hFHdN/+iCPqOVezGnTWxV68lJmedxCwCngOIJJJGNcC/wksjIgHuuzzQuDMiFgl6XTgDdElPU/SCmAFwJIlS07Z0i01y+amqjS02Ua/g+Qjtch7z5u37xid77lnT/H9ix7frIAe6Xlfj4jTssoGZSTS84rMB5el6vmF8hy/n/q4yPaeS8lGkNPzrFNp6XkR8WBE/G1E/NeI+J2IeHtE7IyIPd0aTKnTgLMlbQY+DDxf0voux56JiGURsWzx4sVlhWxVpqFlDUFb5L2zhivPkjWErYe4tWY6WNJzWi8kPRuYZZhJ60ue+YXyqnp+oSbNX9SkWMzMKlJao0nSaZK+IOkHkn7UWnrtExFvioijImIpcC7wLxHx8rJisgxZQ3cXkTUEbZXvnaVIfyqz+rwSeLekzemNprXAH9Ub0pDLM79QXlXffGnSzZ0mxWJmVpEyB4K4HHgHSXrer7ct1lRV3h1cuxampvYvm5raN3pekfe+77585Z2mp5NR/SYnkzSUycnkdSs1MGu9WQ0i4oaIOAF4OnBCRJwYETfWHddQyzO/UF5V33zJc/zOujir/Igj8pX7RpOZjYOyOkcB1w+iE9ZIdD5uiioHPMjqGFzkvT1Qg40wDhwI4uXpz9d3W6KPerOKZWTq4jzzC+VV9fxCeY7fORjEbINAtHQOBjHbIBBzicVsCHTWxV68lDkQxF+TTFJ7NfBQW6Os1DuhI9H5uCla/Yra0+QWLiznqUpWx+Ai711l3GY16+x8LOmPI+IfJV3cbfuIuGRw0e3jutjMRpkHgrBOZabnPZNkgtq/Av42Xd5e4vGtbFWmoWWl3xV5b6fP2RiJiH9Mf31rRFzSudQanJUr75xReeZGatKcUWZmQ6i0J02D4rubQ2LRIrj33gPLDz8c7rln8PGYDYkeQ47fAfw78FXgK8DXI2LHoONrcV1cstaE4J1WrtzXF7RdnifuVT+d99N/G0F+0mSdykzP+xWSp0xHRMQZko4FTo2Iy0t5g5Q/qIeEG01mc9Lrg1rSEuA3SKZrOBP4j4g4cZDxtbguLlneOaPyzI3UpDmjzIaEG03Wqcz0vA8AnwNaw+v8ALiwxOPbMCk6wp2Z7UfSUSSNpd8ATgJuAz5Sa1BWnrxzRuUZgXSc5owyM6tImY2mRRHxUWAPQETsAkqYIdCGUj/zdjgH3iyPrSQ3oj4TEadGxFkR8T/rDspKknfOqDxzI43TnFFmZhUps9H0C0mHAwEg6VlAbfn2VrOseTtaOfBbtiQD2m7Zkrx2w8lsNicBVwJ/IOlfJV0p6ZV1B2UlyTtnVJ65kZo0Z5SZ2ZAqs9H0euAa4EmSvk7y4f6aEo9vwyRrhLvVq/fvNAzJ69WrBx+r2RCIiJuBK4D3A/8C/Cbwl7UGZeVZuzYZ9KH1ZGliYvZBICDfKKJVjzjqEU3NbAyUOnqepPnAUwEB34+Ih0s7eMqdjzts2JA0NLZuTVIh1qwZjg+qefOSJ0ydJNizJ/l9WM/NrIAeo+dtAh4JfAP4GvCViOjS+34wXBeb2SjzQBDWqfCTJkm/21qAs0kaTb8KvCgts6oMc4pbVg78MJ+bWTXOiIjjI+KPI+KDdTaYxlbefph5510yM7PGKiM970U9lheWcHybzTCnuGXlwA/zuZlVICK21x3DWMt7I6c171Jr9Lvdu5PXbjiZmQ0lT247zPpJcWuyXul3w35uZnM0LCkhY1cX552LKO+8S2bWKMNSF9vgzK87ACtgyZLuH+LDMszr9PTsfZSG/dzMbLTknYso77xLZmbWaG40DbM1a5L0kPY0tlEZ5nWUz80sh6y+oRFx9aBiGWt5b+RMTMz+pMnMzIZOmUOOWxV6dTyenobzz99/iNrzzx+NEeY8hK1Zi/uNNkHeuYjyzrtkZmaNVvhJk++CVqjV8bj1tKXV8RiSxsOGDXDFFft3NL7iCjjttNFoXPRK3zMbExHxh3XHYOw/x1w/0yC05leamUnq5omJpP6ebd4lMzNrtMIDQUh6f4/VERF/VOgNOoxV5+Osjsd5OyabWeP16nws6SzgOOBRrbKIuDTjeO8jeSJ1d0Q8rct6Ae8EzgR2AhdExI1ZcY5VXWxmY8cDQVinwul5EfGHPZZSG0xjJ6vjcd6OyWY2tCS9B3gp8BqSCcR/D5jsY9cPAC/osf4M4CnpsgJYVyjQfuSd76jKY+fZvup5l6qM3czMCil1IIi53AW1HrI6HnuEObNx8uyIeLqkWyLiEkl/C2SmP0fEVyQt7bHJOcCVkaQdfFPSYZKeEBF3lRN2h6y040EeO8/2rXmXWlrzLkE5KXdVxm5mZoWVNhBEgbugNpusjsd5Oyab2TB7MP25U9IRwMPAMSUc90jgzrbX29KyalQ5cXXeY+fZfmam+zFmK8+rytjNzKywMkfPe3ZEnAf8LCIuAU4Fji7x+OMnawQ5jzBnNk4+Jekw4G+AG4HNwIdLOK66lHXt7CpphaRNkjZt3759bu9WZVpx3mPnKa963qX6TaHkAAAdE0lEQVQqYzczs8LKbDRVdRd0vE1PJ4M67NmT/OxsEGWtN7NR8baI+I+I+DjJU/xfA/5HCcfdxv43uI4Cftptw4iYiYhlEbFs8eLFc3u32dKHy0grznvsPOWzza9U1rxLVcZuZmaFldloquouqJmZwb+2fomIhyJiR3tZAdcA5ynxLGBHZf2ZoNq04rzHzrN91fMuVRm7mZkVVuZAEG+LiIeAj0v6FMlgEP9Z4vHNzMaOpMeT9DE6SNJJ7EunewywcNYd9+3/IeB0YJGkbcDFwAKAiHgP8GmS4cbvIBlyvNp5ofLOd1TlsfNsX/W8S1XGbmZmhRWep2nvgaQbI+LkrLIu+z0K+ArwSJJG3FURcfFs23tukJw2bPCHqtkQ6ZwbRNL5wAXAMqC98rsfuKKuCcRdF5vZKPM8Tdap8JOmondBgYeA50fEA5IWAF+T9JmI+GbR2Maeh6Q1G3oRcQVwhaQXp/2ZzMzMbMDKSM/7v0jugh4FvKOt/H7gL7J2TucGeSB9uSBdynn8Ne56DUnrRpPZsPm6pMuBIyLiDEnHAqdGxOV1B2ZmZjbqCg8EERFXRMTzgAsi4nltyzn9po1ImpB0E3A38IWIuL5jffFhbseRh6Q1GyXvBz4HHJG+/gFwYX3hmJmZjY8yR8/7uqTLJX0GQNKxkl7Zz44RsTsiTiR5WvUMSU/rWF98mNtx5CFpzUbJooj4KLAHICJ2ASVNEmRmZma9lNloKnwXNCL+A/gS8IIS4xpfHpLWbJT8QtLhpOnLreHB6w3JzMxsPJTZaJrTXVBJi9P5nZB0ELAc+F6JcY2v6elkeNzJSZCSnzMz7s9kNpxeTzKn0pMkfR24EnhNvSGZmZmNhzLnaZrrXdAnkIwMNUHSiPtoRHyqxLjG2/S0G0lmIyAibpT0m8BTSUYp/X5EPFxzWGZmZmOhzEZT513QxcBLsnaKiFuAk0qMw8xs5KRz2q0CnkNyc+qrkt4TEZ5E3MzMrGKlNZp8F9TMrFJXAj8H3pW+fhnwQeD3aovIzMxsTJTWaPJdUDOzSj01Ik5oe/1FSTfXFo2ZmdkYKXMgiCuB40jugv4DcCzJXVAzMyvu22lfUQAkPRP4eo3xmJmZjY0y+zT5LqiZWXWeCZwnqTU79RLgdkm3AhERT68vNDMzs9FWZqPp25KeFRHfBN8FNTMrmeevMzMzq0mZjSbfBTUzq0hEbKk7BjMzs3FVZqPJd0HNzMzMzGzklDnkuO+CmpmZmZnZyClz9DwzMzMzM7OR40aTmZmZmZlZD240mZmZmZmZ9eBGk5mZmZmZWQ9uNJmZmZmZmfXgRpOZmZmZmVkPbjSZmZmZmZn14EaTmZmZmZlZD240mZmZmfVhwwZYuhTmzUt+bthQd0RmNijz6w7AzMzMrOk2bIAVK2DnzuT1li3Ja4Dp6friMrPB8JMmMzMzswyrV+9rMLXs3JmUm9noc6PJzMzMLMPWrfnKzWy0uNFkZmZmlmHJknzlZjZa3GgyMzMzy7BmDSxcuH/ZwoVJuZmNPjeazMzMzDJMT8PMDExOgpT8nJnxIBBm46L2RpOkoyV9UdLtkm6T9Lq6YzIzGyWSXiDp+5LukPTnXdZfIGm7pJvS5b/VEadZ001Pw+bNsGdP8tMNJrPxUXujCdgF/GlE/BfgWcCrJR1bc0xmZiNB0gTwbuAM4FjgZbPUsR+JiBPT5b0DDdKsRJ5LycyqUHujKSLuiogb099/DtwOHFlvVGZmI+MZwB0R8aOI+CXwYeCcmmMyq0RrLqUtWyBi31xKbjiZWVG1N5raSVoKnARcX28kZmYj40jgzrbX2+h+Y+rFkm6RdJWkowcTmlm5PJeSmVWlMY0mSYcAHwcujIj7O9atkLRJ0qbt27fXE2BFqk4jcJqC2dhTl7LoeP1JYGlEPB24Drii64FGuC620eC5lMysKo1oNElaQNJg2hARV3euj4iZiFgWEcsWL148+AArUnUagdMUzIzkyVL7k6OjgJ+2bxAR90bEQ+nLfwJO6XagUa2LbXR4LiUzq0rtjSZJAi4Hbo+Id9QdzyBVnUbgNAUzA74FPEXSMZIeAZwLXNO+gaQntL08m6RvqdnQ8VxKZlaV2htNwGnAK4Dntw13e2bdQQ1C1WkETlMws4jYBfwJ8DmSxtBHI+I2SZdKOjvd7LXplA83A68FLqgnWrNiPJeSmVVlft0BRMTX6J5zP/KWLElS5rqVD8PxzWw4RMSngU93lF3U9vubgDcNOi6zKkxPu5FkZuVrwpOmsVV1GoHTFMzMzGa3ahXMn588lZo/P3ldpzyDN+Ud6Klp51oVD4BlVXGjqUZVpxE4TcHMzKy7Vatg3TrYvTt5vXt38rquxkSewZvyDvTUtHOtigfAsiq50VSz6WnYvBn27El+DlODpuq7Vr5bZGZmVZmZyVdetTyDN+Ud6Klp51oVD4BlVaq9T5NVp3XHpVWBtO64QPHGWeuuVUvrrhXA2rXFjg3Vxm5mZtZ66tJvedXyDN6Ud6Cnpp1rVTwAllXJT5pGWJV3XKq+a+W7RWZmVqWJiXzlVcszx1Te+aiadq5V8TxdViU3miqWlWJWNMVt+fJk39ayfPm+dVXecan6rpXvFpmZWZVa2Qv9llctz+BNeQd6atq5VsUDYFmV3GiqUFaHxKIdM5cvh40b9y/buHFfw+lxj+u+32zleVR918p3i8zMrEpr18LKlfs+tyYmktdlpJjPRZ7Bm/IO9NS0c62KB8CyKiki6o4hl2XLlsWmTZvqDqMvS5d2nydpcjIZ9GH+/O5PZiYmYNeu7OOrx+xWEbBoEdx774HrDj8c7rkn+/i9dPZpaimrEu7s0wTJ3SJXfjbqJN0QEcvqjiPLMNXFZmZ5DUtdbIPjJ00lmC0FLyvFrJ8Ut17pd1nuuy+7vFd6YK/UwrVr4dhj9z/usceWd9dqehrOP3//u2Lnn+8Gk5mVy6N0lmNYr+Mwz3XUpFjMxkJEDNVyyimnRJOsXx+xcGFE8mwnWRYuTMonJ/cvby2Tk8m+ExPd109MJOunprqvn5pK1ndb11oiIh71qO7rHvWoZP3Kld3Xr1zZ+7yy9q36upqNMmBTNKCuzVqaVhfPheuZcgzrdcwbd9Wfe3k0KZZRNSx1sZfBLU7PK6hXCt6aNb1TzLJS3LLS7x75SPjlLw9c94hHwEMPZe/fKz3wqKOqTS3MkpXaaDaqhiUlpGl18Vy4ninHsF7HvHFX/bmXR5NiGVXDUhfb4Dg9r6BeKXhZHRKLdsx8+OF85Z16pQeWkVpYhEfPM7OquZ4px7Bex2Ge66hJsZiNCzeaKJaLnTXK2/R0csdqz57kZ5l9coqOMNdrBLysY/czel6V19XMrCjXM+UY1us4zHMdNSkWs3Ex9o2mrGHBszz5yfnK22UNOd450EJLqzzrvY84ovv6Vvnpp3dff/rp2XMdZM35UPS6eq4FM6ua65lyDOt1HOa5jpoUi9nYqLtTVd6l7M7HWYM1ZMkazKHIvkUHkih6/NZgFlLys7Nz7MqV+95jYmL/DqhFr2s/7282ihiSzsejMBBEhOuZsgzrdcwbd6/PvUFrUiyjaFjqYi+DW8Z+IIh585Kv852kJKUOkqcjq1cnec5LliR3oVppdlmDLRTZNyu2rP2LHj9Lr3MremyzcTUsnY9HYSAIM7PZDEtdbIMz9ul5nY/mO8uz0sx65RUX2Rey863nzfKv1yovevxess7tcY/rvt9s5WZm1hx5+6TmmVMw7/xCRx65/7GPPLK82B/72P2P/djH9j523rkT855rnu2rnhuryuMP67xeNubqftSVdyk7JWTevOiaRjZvXrI+K82s11wJRfaNyJ5D4uCDu+9/8MHlHL+XrHM7/PDu6w8/vMi/ltnoY0hSQkYlPc8OlPezIWtOwXZ55xc64oju2x9xRPHYDzus+7EPO6z4ec7lXPNsX/XcWFUef1jm9RqWutjL4JbaA8i7lP1B3a2Cai0RSZ5zt3XSvmPMlldcZN+WXvnWVR+/l6z37ie2IoY1f94sy7B8ULvRNLry9knN+hxtl7cfcJ5j540977Hzbp/3XPNsX0a/4V6qPH7VsZdlWOpiL4Nbxr5PU9YEcUUm7at6wr9Fi+Deew8sP/xwuOee4sfvJevcqjz3VmrgbJMGmw2zYcmjd5+m0ZW3T2pW/9m5bjuX7fPEXnUsVW5fdb/hKo8/LH2eh6UutsEZ+z5NWcN2FhlKdViHYe1H1rlVee6rV+/fYILk9erVxY9tZjbuqpx3qer5hZo0Z1Tec81TXvV5Vnn8Jv0bmeUxFo2mXh0O166FlSv3VUoTE8nrtWuT19PTyROMycnkLsjkZP9PNIrs24/77stXXqasc6vy3Id19nkzs2GQ96bX1FT/5XnnF8qab7BTntgPO6z7MWYrz3OekP9c85RXfVO2yuOP8g1lG3F15wfmXfLm0Q9Lh8O5GJa84LKN63nbeGBI8ujdp2m05e032jlIwmyDI0Tkn1+oczCI2QaBmEvsnYNBzDYIREue84zIf655tq+6b2+Vxx+GfsnDUhd7Gdwy8n2aqu5XVKdx7dszrudt42FY8ujdp8nMRtmw1MU2OLWn50l6n6S7JX2niuOPcipX1el/TTWu521m1lR55hfKO9eRNZ/nXbJxUHujCfgA8IKqDj6IDod1VhbT08kTsz17kp/j0nAY1/M2M2uaVatg3bp9I9Hu3p287tZwWr4cNm7cv2zjRjechlnWZPdmo6L2RlNEfAWobOiCqjscurIwM7NxNjPTf3lngymr3JrPI9rauKi90VS1qlO5XFmYmdk46zbXYa9yGy2j3A3CrN38ugPoh6QVwAqAJXPIq5ueri59y5WFmZmNs4mJ2SeJt9G3ZEn3Abc875KNmqF40hQRMxGxLCKWLV68uO5w9uNJ2szMbJzlmV8o71xH1nyed8nGxVA0mprMlYWZmY2zrEni21133YENpKmppNyGk0e0tXFRe6NJ0oeAfwWeKmmbpFfWHVMerizMrOkkvUDS9yXdIenPu6x/pKSPpOuvl7R08FHaMFu7FnbtSgZE2rWre4Op5brr9p+a3A2m4ecRbW0c1N6nKSJeVncMRVXZZ8rMrAhJE8C7gd8CtgHfknRNRHy3bbNXAj+LiCdLOhd4K/DSwUdrZmbWTLU/aTIzs0o9A7gjIn4UEb8EPgyc07HNOcAV6e9XAVOSNMAYzczMGs2NJjOz0XYkcGfb621pWddtImIXsAM4fCDRmZmZDQE3mszMRlu3J0Yxh22QtELSJkmbtm/fXkpwZmZmw8CNJjOz0bYNOLrt9VHAT2fbRtJ84FDgvs4DNXn6BzMzsyq50WRmNtq+BTxF0jGSHgGcC1zTsc01wPnp7y8B/iUiDnjSZGZmNq40bJ+LkrYDXeaeHohFwD01vXcWxzY3jm1uHNvcZcU3GRGlPsaRdCZwGTABvC8i1ki6FNgUEddIehTwQeAkkidM50bEjzKOWUZd3PR/q7KMy3nC+JzruJwnjM+5dp5n6XWxDbehazTVSdKmiFhWdxzdOLa5cWxz49jmrunxDdK4XItxOU8Yn3Mdl/OE8TnXcTlPmzun55mZmZmZmfXgRpOZmZmZmVkPbjTlM1N3AD04trlxbHPj2Oau6fEN0rhci3E5Txifcx2X84TxOddxOU+bI/dpMjMzMzMz68FPmszMzMzMzHpwo6kLSROSvi3pU13WXSBpu6Sb0uW/DTi2zZJuTd97U5f1kvT3ku6QdIukkxsU2+mSdrRdu4sGGNthkq6S9D1Jt0s6tWN9ndctK7Zarpukp7a9502S7pd0Ycc2tVy3PmOr8+/tv0u6TdJ3JH0oHdK7ff0jJX0kvW7XS1o6qNgGSdLRkr6Y/l3fJul1Xbap7f9emfo819r+Jssi6VGS/k3Szel5XtJlm5H4++7zXGv9TlAm9f7uMxL/pi0Z5zoy/6ZWrvl1B9BQrwNuBx4zy/qPRMSfDDCeTs+LiNnmTDgDeEq6PBNYl/4clF6xAXw1Il44sGj2eSfw2Yh4iZIJPhd2rK/zumXFBjVct4j4PnAiJB8wwE+AT3RsVst16zM2qOG6SToSeC1wbEQ8KOmjJBPKfqBts1cCP4uIJ0s6F3gr8NJBxjkgu4A/jYgbJT0auEHSFyLiu23b1F1nlaWfc4X66sCyPAQ8PyIekLQA+Jqkz0TEN9u2GZW/737OFer/TlCWXt99RuXftKXp3/OsgfykqYOko4CzgPfWHcscnQNcGYlvAodJekLdQdVJ0mOA5wKXA0TELyPiPzo2q+W69RlbE0wBP4yIzslMm/D3NltsdZoPHCRpPkkj+Kcd688Brkh/vwqYkqQBxjcQEXFXRNyY/v5zki8pR3Zs1oS/ocL6PNehl/47PZC+XJAunZ2jR+Lvu89zHQl9fPcZiX9TGInveVYTN5oOdBnwZ8CeHtu8OE0juUrS0QOKqyWAz0u6QdKKLuuPBO5se72NwX1wZ8UGcGqa6vAZSccNKK4nAtuB96eP498r6eCObeq6bv3EBvVct3bnAh/qUl7n31vLbLFBDdctIn4CvB3YCtwF7IiIz3dstve6RcQuYAdw+CDiq0uaznMScH3Hqib8DZWqx7lC/f+XC0tTm24C7ga+EBGz/psO+993H+cK9X4nKEvWd5+R+Tel+d/zrKHcaGoj6YXA3RFxQ4/NPgksjYinA9ex787LoJwWESeTpLS8WtJzO9Z3u/MzqDtjWbHdCExGxAnAu4B/HlBc84GTgXURcRLwC+DPO7ap67r1E1td1w2ANGXwbOBj3VZ3KRvYndiM2Gq5bpIeS3JX9hjgCOBgSS/v3KzLriN5BxtA0iHAx4ELI+L+ztVddhnaa5FxrrX+Xy5LROyOiBOBo4BnSHpaxyYj82/ax7nW/Z2gsD6/+4zEv+mQfM+zhnKjaX+nAWdL2gx8GHi+pPXtG0TEvRHxUPryn4BTBhlgRPw0/Xk3SR+OZ3Rssg1ovytyFAemBtUSW0Tc30p1iIhPAwskLRpAaNuAbW13CK8iaah0blPHdcuMrcbr1nIGcGNE/HuXdbX9vaVmja3G67Yc+HFEbI+Ih4GrgWd3bLP3uqUpfIcC9w0gtoFL+4J8HNgQEVd32aTuv6HSZJ1rA/4vlypNJf4S8IKOVSP39z3budb9naAkmd99GJ1/08Z/z7PmcqOpTUS8KSKOioilJCk//xIR/3979x8sVVnHcfz9CZi8gEaNTEJlOCA2iiBihKCWGU7jH4jjLSwGw+yHNkGOg45DZY2kqTFOUzYxpkxOYWaN12HQEKn4MVHyQ35cFEFRRlJKJ5Eo0CK//XGercOyd9l1L/cs6+f1z+4+5znP+Z5z9353n+c85+xBI8Rlc+0nkc1b7xGS+qULjElTuC4ENpdVWwhcrsw4sqlBu5ohNkknlOZASxpL9v7725GOLSL+AuyUdEoqugAovzi7kONWS2xFHbecz9D19LdCjltOl7EVeNxeAMZJ6pu2fwGH5omFwOfS83ayXHPUjdoeTtr/e4AtEXFHF9WKfg91i1r2tQn+lxsmaaCkAel5G9kgwdNl1Vri/V3Lvhb5naC71PLdhxb5mzb79zxrbr57Xg0k3QSsjYiFwExJk8julPQqML0HQ3kv0JE+c3sD90XEYklXAUTEPOAR4CLgWWAfcEUTxdYOXC3pALAfuKwHk+4MYEGazvUccEWTHLdaYivsuEnqC0wEvpwra4rjVkNshRy3iHhc0q/JpmIdANYDd5XlkXuAn0l6liyPXHak4yrIBGAa0JmuCwGYDZwIxb+Hulkt+1pkDuwug4B7ld218h3AAxGxqEXf37Xsa5HfCY6oFv2bVvR2+ZtaY3T05WszMzMzM7Oe4+l5ZmZmZmZmVbjTZGZmZmZmVoU7TWZmZmZmZlW402RmZmZmZlaFO01mZmZmZmZVuNNkLUfSxyQtqrW8G7Y3WdKpudfLJJ1Vw3qDuiOe9Fsiixttx8zsSHiruVfS4HT7/krL/pdnJc3OlQ+RVP77hV21f42ky+uNq0I7X5V0tN4q38xq5E6TWeMmA6cettahriX7tfGGRMQrwC5JExpty8ysWUTESxHRXkPV2YevcjBJvYHPA/fVHdih5gMzu6EdM2ti7jRZj5PUT9LDkjZK2ixpSiofI2m5pHWSHi39KncaUfy+pFWp/thUPjaVrU+Pp9QZw3xJa9L6F6fy6ZIelLRY0jOSbs+tc6WkbSmen0i6U9J4sl8M/56kDZKGpuqfkrQ61T+3izAuBRantntJmiupU9ImSTNS+Q5Jt0j6o6S1ks5Mx2Z76Ydck4eAqbXuv5lZSVE5WdIjkkam5+sl3Ziez5H0hfxZI0ltku5P+fGXQFsqvxVoS/l3QWq6V8rRT0paIqmtwuY/DjwREQdSO8MkLU3H4AlJQ9MZsuWSHki5/FZJU1Nu7yzl+4jYB+woHQcza03uNFkRPgm8FBGjImIEsFhSH+CHQHtEjCEbubs5t06/iBgPfCUtA3gaOC8iRgM3ArfUEcPXgd9FxIeB88k6Pf3SsjOAKcDpwBRJH5A0GPgmMA6YCHwIICJWAQuB6yLijIjYntroHRFjgWuAb5VvXNJJwO6IeCMVfQk4CRgdESOBBbnqOyPibGAl8FOgPcVxU67OWqCrzpmZWTVF5eQVwLmSjgMOAKWz5eeQ5bu8q4F9KT/eDIwBiIgbgP0p/5YGjk4GfhQRpwGvkQ1QlZsArMu9XpDWGQWMB3al8lHA18g+D6YBw1NuvxuYkVvfOdisxfUuOgB7W+oE5kq6DVgUESsljQBGAI9JAujF/z+0AH4BEBErJB0naQBwLHCvpJOBAPrUEcOFwCRJs9LrY4AT0/PfRsQeAElPAR8EjgeWR8SrqfxXwPAq7T+YHtcBQyosHwS8knv9CWBeadSztJ1kYXrsBPpHxF5gr6TXJQ2IiNeAl4HB1XfZzKyionLySrJpbc8DDwMTJfUFhkTEVklDcnXPA36QtrlJ0qYq7T4fERvS82o5eAuApGOB90VER2r/9VQOsCYidqXX24Elaf1OsgG3kpdJg2lm1prcabIeFxHbJI0BLgK+K2kJ0AE8mc6oVFytwus5wO8j4pL04bqsjjAEXBoRWw8qlD4CvJEr+g/Z/4nqaJtcG6X1y+0n66jl4ynfx/K23iyL7c1c28ekNs3M6lJgTl4DnAU8BzxGNjj1RQ4+A1Rtm10pz+GVpuflc3C1/F6ec/P5OJ/bnYPNWpyn51mPS1Pd9kXEz4G5wJnAVmCgpLNTnT6STsutVppjfw6wJ50JehfwYlo+vc4wHgVmKA0lShp9mPqrgY9KereyC4jz0z32ko2w1mMbB49+LgGuSm0j6T11tjccqOmOUWZmeUXl5Ij4F7AT+DTwJ7IzT7M4dGoeZFP5pqZtjgBG5pb9O00nrMcWYFiK4+/AnyVNTu2/M53xqodzsFmLc6fJinA6sFrSBrJri76TPjzbgdskbQQ2kM0rL9ktaRUwD7gyld1ONir6B7KpI/WYQzZ1ZFO60HhOtcoR8SLZ/PzHgaXAU8CetPh+4Lp0IfPQLpoob++fwHZJw1LR3cALKZ6NwGfr3J/zyaa3mJnVq8icvBL4a7qZwkrg/VTuNP0Y6J+m5V1PNpBVchdZ7lxQYb2u/IZsyl/JNGBman8VcEIdbUF2jdTSOtcxs6OIImo9221WDEnLgFkRsbbgOPpHxD/S2aAOYH5pDvxbbO8SYExEfKMbYlsBXBwRuxtty8ysmmbJyY2S1AFcHxHPNNjOaODaiJjWPZGZWTPymSaz2n07jcRuJrtw+aFGGksdrh2NBiVpIHCHO0xmZnW5geyGEI06nuzuqmbWwnymyczMzMzMrAqfaTIzMzMzM6vCnSYzMzMzM7Mq3GkyMzMzMzOrwp0mMzMzMzOzKtxpMjMzMzMzq8KdJjMzMzMzsyr+C8iNyi58PTBGAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 720x504 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10,7))\n",
    "fig.tight_layout()\n",
    "\n",
    "plots = [(0,1),(2,3),(0,2),(1,3)]\n",
    "colors = ['b', 'r', 'g']\n",
    "labels = ['Iris setosa','Iris virginica','Iris versicolor']\n",
    "\n",
    "for i, ax in enumerate(axes.flat):\n",
    "    for j in range(3):\n",
    "        x = df.columns[plots[i][0]]\n",
    "        y = df.columns[plots[i][1]]\n",
    "        ax.scatter(df[df['target']==j][x], df[df['target']==j][y], color=colors[j])\n",
    "        ax.set(xlabel=x, ylabel=y)\n",
    "\n",
    "fig.legend(labels=labels, loc=3, bbox_to_anchor=(1.0,0.85))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Perform Train/Test/Split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = df.drop('target',axis=1).values\n",
    "y = df['target'].values\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2,random_state=33)\n",
    "\n",
    "X_train = torch.FloatTensor(X_train)\n",
    "X_test = torch.FloatTensor(X_test)\n",
    "# y_train = F.one_hot(torch.LongTensor(y_train))  # not needed with Cross Entropy Loss\n",
    "# y_test = F.one_hot(torch.LongTensor(y_test))\n",
    "y_train = torch.LongTensor(y_train)\n",
    "y_test = torch.LongTensor(y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Prepare DataLoader\n",
    "For this analysis we don't need to create a Dataset object, but we should take advantage of PyTorch's DataLoader tool. Even though our dataset is small (120 training samples), we'll load it into our model in two batches. This technique becomes very helpful with large datasets.\n",
    "\n",
    "Note that scikit-learn already shuffled the source dataset before preparing train and test sets. We'll still benefit from the DataLoader shuffle utility for model training if we make multiple passes throught the dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "trainloader = DataLoader(X_train, batch_size=60, shuffle=True)\n",
    "\n",
    "testloader = DataLoader(X_test, batch_size=60, shuffle=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Define loss equations and optimizations\n",
    "As before, we'll utilize <a href='https://en.wikipedia.org/wiki/Cross_entropy'>Cross Entropy</a> with <a href='https://pytorch.org/docs/stable/nn.html#crossentropyloss'><strong><tt>torch.nn.CrossEntropyLoss()</tt></strong></a><br>\n",
    "For the optimizer, we'll use a variation of Stochastic Gradient Descent called <a href='https://en.wikipedia.org/wiki/Stochastic_gradient_descent#Adam'>Adam</a> (short for Adaptive Moment Estimation), with <a href='https://pytorch.org/docs/stable/optim.html#torch.optim.Adam'><strong><tt>torch.optim.Adam()</tt></strong></a>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# FOR REDO\n",
    "torch.manual_seed(4)\n",
    "model = Model()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "criterion = nn.CrossEntropyLoss()\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=0.01)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "epoch:  1  loss: 1.09568226\n",
      "epoch: 11  loss: 0.98190653\n",
      "epoch: 21  loss: 0.75652307\n",
      "epoch: 31  loss: 0.49447522\n",
      "epoch: 41  loss: 0.34981874\n",
      "epoch: 51  loss: 0.22807853\n",
      "epoch: 61  loss: 0.13547322\n",
      "epoch: 71  loss: 0.09162075\n",
      "epoch: 81  loss: 0.07378192\n",
      "epoch: 91  loss: 0.06546164\n"
     ]
    }
   ],
   "source": [
    "epochs = 100\n",
    "losses = []\n",
    "\n",
    "for i in range(epochs):\n",
    "    i+=1\n",
    "    y_pred = model.forward(X_train)\n",
    "    loss = criterion(y_pred, y_train)\n",
    "    losses.append(loss)\n",
    "    \n",
    "    # a neat trick to save screen space:\n",
    "    if i%10 == 1:\n",
    "        print(f'epoch: {i:2}  loss: {loss.item():10.8f}')\n",
    "\n",
    "    optimizer.zero_grad()\n",
    "    loss.backward()\n",
    "    optimizer.step()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "type(losses)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# You may encounter the following error => \"Can't call numpy() on Tensor that requires grad\"\n",
    "losses= [ loss.detach().numpy() for loss in losses]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plot the loss function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(epochs), losses)\n",
    "plt.ylabel('Loss')\n",
    "plt.xlabel('epoch');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Validate the model\n",
    "Now we run the test set through the model to see if the loss calculation resembles the training data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.06246195\n"
     ]
    }
   ],
   "source": [
    "# TO EVALUATE THE ENTIRE TEST SET\n",
    "with torch.no_grad():\n",
    "    y_val = model.forward(X_test)\n",
    "    loss = criterion(y_val, y_test)\n",
    "print(f'{loss:.8f}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " 1. tensor([-0.3355,  7.3630,  1.3783])     1\n",
      " 2. tensor([0.2775, 8.1554, 0.4269])        1\n",
      " 3. tensor([ 11.9969,   6.1847, -19.1976])  0\n",
      " 4. tensor([-2.0187,  7.9664,  4.2447])     1\n",
      " 5. tensor([-6.1348,  7.9516, 11.0913])     2\n",
      " 6. tensor([-10.2635,   8.3101,  17.9998])  2\n",
      " 7. tensor([ 12.0542,   6.4321, -19.2909])  0\n",
      " 8. tensor([ 12.9507,   6.4819, -20.7540])  0\n",
      " 9. tensor([-5.7723,  8.2435, 10.5083])     2\n",
      "10. tensor([-7.8867,  8.6126, 14.0731])     2\n",
      "11. tensor([-8.7055,  8.6074, 15.4337])     2\n",
      "12. tensor([ 11.6358,   5.8167, -18.6220])  0\n",
      "13. tensor([-8.1009,  8.2331, 14.3888])     2\n",
      "14. tensor([-2.0791,  7.7752,  4.3188])     1\n",
      "15. tensor([-6.0828,  8.3916, 11.0586])     2\n",
      "16. tensor([0.1360, 7.8660, 0.6409])        1\n",
      "17. tensor([-4.0875,  7.7217,  7.6642])     2\n",
      "18. tensor([ 13.1522,   6.5911, -21.0798])  0\n",
      "19. tensor([-1.5644,  8.0222,  3.4754])     1\n",
      "20. tensor([-6.2859,  8.9728, 11.4248])     2\n",
      "21. tensor([ 12.3859,   6.2571, -19.8275])  0\n",
      "22. tensor([ 13.8200,   7.0859, -22.1528])  0\n",
      "23. tensor([-8.8470,  8.3180, 15.6476])     2\n",
      "24. tensor([ 12.1979,   6.1264, -19.5260])  0\n",
      "25. tensor([-5.8084,  7.5468, 10.5340])     2\n",
      "26. tensor([-4.4526,  7.7876,  8.2865])     2\n",
      "27. tensor([-1.4284,  7.7786,  3.2328])     1\n",
      "28. tensor([ 0.5356,  7.5360, -0.0492])     1\n",
      "29. tensor([-5.8230,  8.1573, 10.5975])     2\n",
      "30. tensor([-5.2569,  7.7476,  9.6105])     2\n",
      "\n",
      "29 out of 30 = 96.67% correct\n"
     ]
    }
   ],
   "source": [
    "correct = 0\n",
    "with torch.no_grad():\n",
    "    for i,data in enumerate(X_test):\n",
    "        y_val = model.forward(data)\n",
    "        print(f'{i+1:2}. {str(y_val):38}  {y_test[i]}')\n",
    "        if y_val.argmax().item() == y_test[i]:\n",
    "            correct += 1\n",
    "print(f'\\n{correct} out of {len(y_test)} = {100*correct/len(y_test):.2f}% correct')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here we can see that #17 was misclassified."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Save the trained model to a file\n",
    "Right now <strong><tt>model</tt></strong> has been trained and validated, and seems to correctly classify an iris 97% of the time. Let's save this to disk.<br>\n",
    "The tools we'll use are <a href='https://pytorch.org/docs/stable/torch.html#torch.save'><strong><tt>torch.save()</tt></strong></a> and <a href='https://pytorch.org/docs/stable/torch.html#torch.load'><strong><tt>torch.load()</tt></strong></a><br>\n",
    "\n",
    "There are two basic ways to save a model.<br>\n",
    "\n",
    "The first saves/loads the `state_dict` (learned parameters) of the model, but not the model class. The syntax follows:<br>\n",
    "<tt><strong>Save:</strong>&nbsp;torch.save(model.state_dict(), PATH)<br><br>\n",
    "<strong>Load:</strong>&nbsp;model = TheModelClass(\\*args, \\*\\*kwargs)<br>\n",
    "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model.load_state_dict(torch.load(PATH))<br>\n",
    "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model.eval()</tt>\n",
    "\n",
    "The second saves the entire model including its class and parameters as a pickle file. Care must be taken if you want to load this into another notebook to make sure all the target data is brought in properly.<br>\n",
    "<tt><strong>Save:</strong>&nbsp;torch.save(model, PATH)<br><br>\n",
    "<strong>Load:</strong>&nbsp;model = torch.load(PATH))<br>\n",
    "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;model.eval()</tt>\n",
    "\n",
    "In either method, you must call <tt>model.eval()</tt> to set dropout and batch normalization layers to evaluation mode before running inference. Failing to do this will yield inconsistent inference results.\n",
    "\n",
    "For more information visit https://pytorch.org/tutorials/beginner/saving_loading_models.html"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Save the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "torch.save(model.state_dict(), 'IrisDatasetModel.pt')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load a new model\n",
    "We'll load a new model object and test it as we had before to make sure it worked."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Model(\n",
       "  (fc1): Linear(in_features=4, out_features=8, bias=True)\n",
       "  (fc2): Linear(in_features=8, out_features=9, bias=True)\n",
       "  (out): Linear(in_features=9, out_features=3, bias=True)\n",
       ")"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_model = Model()\n",
    "new_model.load_state_dict(torch.load('IrisDatasetModel.pt'))\n",
    "new_model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.06246195\n"
     ]
    }
   ],
   "source": [
    "with torch.no_grad():\n",
    "    y_val = new_model.forward(X_test)\n",
    "    loss = criterion(y_val, y_test)\n",
    "print(f'{loss:.8f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Apply the model to classify new, unseen data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "mystery_iris = torch.tensor([5.6,3.7,2.2,0.5])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's plot this new iris in yellow to see where it falls in relation to the others:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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eNxLL730KQD4/f69s2fPPgkAiouLD5SWluZdeumlX5eWln4NAEeOHJGf/vSnvvXr13dxuVyoq6vrlKjPn2i8PY8cqbQUqK4GfD5AxHitrjbaiSg2IpIFY8BUo6p/D56vqvtU9UDg58UAskSkV5LDJCKbzC2ZC2+Wt02bN8uLuSWRz0SGWi/LlYVsd9v/10fTF7XVty/aDWYitcfD6/U2h2q/4IILDixbtmxTbm7ukenTpw+87777Tmg9PysrCx999NGGSy+99Jtnnnnm+AkTJgwGAFXFihUrNmzcuHH9xo0b13/55ZdrevToEXIbofz1r3/dduedd37x2WefZZ922mnDdu7c6Z47d26fE088sWHDhg3r165du76hocGxYxPHBkZUWgrU1gLNzcYrB0xEsRMRAfAQgA2qek+YZfoGloOIjIHx3fBV8qIkIjuVjihF9ZRq+HJ8EAh8OT5UT6lG6YjIX6yh1nv4xw9j4Y8WxtwXtTVrFrZ37ow2A47OndE8axa2273tzZs3Z+fm5jbcdNNNe6ZNm7Zn1apVbUbG9fX1rr1797qvuOKK+gULFny2YcMGLwCMHz9+31133XViy3LvvvtuFwDo1q1b0/79+90t7aNHj/72wQcf7AEA999/f8/i4uIDALBu3bpOEydO/Hb+/Plf9OjRo3Hr1q3Z9fX17n79+jW43W5UVlae0NTUZPfHjxtvzyMiymxnAbgawFoR+SjQdhuAAQCgqgsATAXgF5FGAN8BuFJVefsdUQYpHVEa18Am3HocJFnT8tzSnDnI3bkT2X374sisWdieqOeZInnllVe63XvvvX09Ho96vd6mmpqa/2s9/5tvvnFfdNFFpx4+fFgA4M477/wMAKqrqz/72c9+NiA/P7+wqalJxo4du//MM8/cdumll34zderUU1566aXj58+fv62qqmrbv/7rv+b993//d98TTjih8bHHHqsFgJkzZ55UW1vbSVVl/Pjx+8aNG/ddt27dvrz00ktPeeaZZ3qMHz9+f5cuXaK+cpVskm7fi8XFxbpixYpUh0FEZAsRWamqxamOwwyPxUTxq1lbg4olFdhWvw0DcgZgbsnchA5Cyl8sR/XKajRpE9ziRllRGSonVyas/44gnmPx6tWra0eNGrXHrpgofqtXr+41atSoPCt98EoTERERUZK01D5qSeXdUucISMzVm/IXy1G1ouro+yZtOvqeAyei+PGZJiIiIqIkibdmUrSqV1bH1E5E0eGgiYiIiChJ4q2ZFK0mDf0gfbh2IooOB01ERERESRKunlGi6hy5xR1TOxFFh4MmIiIioiSJt2ZStMqKymJqJ6LocNBERERElCTx1kyKVuXkSviL/UevLLnFDX+xn0kgiCzioIlsU1MD5OUBLpfxWlOT6oiIiIhSr3REKWpvqEXz7c2ovaE24TWPKidXonFWI/R2ReOsRg6YOhCv1zs63LzRo0cPsdr/Oeecc+qePXtiutfzj3/8Y+/77rvvhEjLLFu2zDt9+vSTrUVnLw6ayBY1NUBZGVBXB6gar2VlHDgRERHVrK1B3vw8uGa7kDc/DzVrayy1xbvNeJeLNwa7OTWusBYs6In+/UfA5SpC//4jsGBBTzs209jYCAD48MMPN1rt66233vqkV69ebbKKNDc3o6kpfKKRW2+9dfcvf/nLryL1+/3vf//gI4888pnV+OzEQRPZoqICONg2oyoOHjTaiYiIOqqWOk119XVQKOrq63DtM9fiumeva9N23bPX4dpnrjVdruz5MtPBQahthlovmuWi7SvZnBpXWAsW9MTMmT7s2JENVWDHjmzMnOlL1MDphRde6DZ27Nj8KVOmDCwoKBgGHLsKVVdXl1VcXFwwZMiQwsGDBw97+eWXu7Ze96mnnup+4YUXDmrd18SJE08FgNzc3BE7duzwbNq0KXvQoEHDpk2bNmDYsGGFn376afa8efN65eXlDR8zZkzBlVde6bvmmmsGAMCNN97Yf9asWX0AYMyYMQV+vz93xIgRQ/Py8oa3bPuFF17odu65554KAPX19a6pU6fm5efnF+bn5xc+8sgjxwNAaWnpgOHDhw899dRTh82cObN/IvZTLDhoIltsC5M5NVw7ERFRRxCqTlNDcwOONB1p03ak6QgamhtMl4umxlO0taGiWc7uOlPxcmpcYc2Zk4tDh9r+P/zQIRfmzMlN1CbWrFlz3J/+9Kftn3766brW7QsXLuxZUlJSv3HjxvUbNmxYN3bs2DY77pJLLtn34YcfHrdv3z4XADz++OM9pk6duje4/9ra2s7XXnvtVxs2bFifnZ2tf/7zn/u9//77G5YvX755y5YtncPF1djYKGvXrt1w1113fTZnzpx2g59///d/79e9e/emzZs3r9+8efP6yZMn7weAe+65Z/vHH3+8YePGjeveeeedbu+//36XePdNPDhoIlsMCJM5NVw7ERFRR5Coekyx9BltbaholrO7zlS8nBpXWDt3ZsfUHoeRI0d+O2TIkCPB7ePGjfv28ccf73XjjTf2/+CDD7r06NGjufX8rKwsTJgwYd8TTzyR09DQgDfeeCPnqquu+ia4n379+h0pKSn5FgCWL19+3NixY/f36dOnqVOnTnrJJZd8HS6uyy677GsAOPPMM7/9/PPP233eZcuWdZ85c+aXLe979+7dBACPPvpoz8LCwqGFhYWFW7Zs6bx69eqwAzM7cNBEtpg7F/C2zagKr9doJyIi6qgSVY8plj6jrQ0VzXJ215mKl1PjCqtv33aDmYjtcfB6vc2h2i+44IIDy5Yt25Sbm3tk+vTpA0Mlabjyyiv3Pv300z2ff/757iNHjjwYPLAK7l9Vo46rc+fOCgAejwdNTU0SPF9VIdK2eePGjdn33Xdfn7feemvz5s2b10+cOLH+UPCVOptx0ES2KC0FqqsBnw8QMV6rq412IiKijipUnaYsVxay3W1PuGe7s5HlyjJdLpoaT9HWhopmObvrTMXLqXGFNWvWdnTu3HYg0rlzM2bN2m73pjdv3pydm5vbcNNNN+2ZNm3anlWrVnmDl5k8efL+devWeR944IFel112Wbtb84KdffbZ377//vvddu/e7W5oaMCzzz7bI974JkyYsO+ee+45seX97t273V9//bW7S5cuzT179mz67LPPPEuXLs2Jt/94cdBEtiktBWprgeZm45UDJiIi6uhC1Wl6+McPY+GPFrZpW/ijhXj4xw+bLhdNjadoa0NFs5zddabi5dS4wpoxYy/mzatDv35HIAL063cE8+bVYcYM0wGKVa+88kq3wsLCYUOHDi189tlne9x66627gpfxeDwoKSmpf+utt3KuuOKKerM+Bw4c2DBz5swd3/ve94aeddZZBfn5+d/l5OSET6kXwe9///sd33zzjXvw4MHDCgoKChcvXtztjDPO+G748OEHBw8ePOzqq6/OKyoqOhBP31ZILJfTnKC4uFhXrFiR6jAyRk2NkdFu2zbjeaO5czm4IUolEVmpqsWpjsMMj8VElMniORavXr26dtSoUXvsisnp6uvrXTk5Oc0NDQ0477zzTp0+ffqea665pt2zUKmwevXqXqNGjcqz0gevNHVgrKVE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l5QAr7+eunhiUVMDVFQA27YBAwYAc+cCpel9fCQHs1pMMVHFGG3InjcewHIAawE0B5pvAzAAAFR1QWBgdR+A8wEcBHCtqkY80PJYTESZzO7sedu3L+j56aczfc3Nh45ewHC5Ojefcsq8utzcGXtjjbeF1+sdfd11131ZVFR08Nprr/36kksuySssLDz07rvvdn399dc/GTRo0PD33ntvY//+/RubmpowcODA4e+///7Gl156qdvvf//7/i6XS7t169b09ttvbx44cODwQ4cOufr06dNw00037bjiiivqf/rTnw7YsGFDl6amJqmoqPhi2rRp39x7770nvPTSSzmHDx92HTx40NW3b9+GqVOnfj1t2rRvAODiiy8eeMUVV+wtLS2tb4lz06ZN2RdddNHgLVu2rAte/9FHH61tmbdixYrO11577cCGhgZpbm7G3/72t09HjBhxONb9wux5FFHwgAkw3k+alJp4YlFTYzwfVVdnXMmqqzPe17AsA9mgJZ1tXX0dFIq6+jqUPV8WU/0QK+vbSVXfVlVR1ZGqelpgWqyqC1R1QWAZVdVfqOopqjrCbMBERLEJrjE06bFJ8MzxQGYLPHM8KH8xdJFDp9Ymcmpc6aSubk5u6wETADQ3H3LV1c1pl4QnVldfffXeJ598ssfBgwdlw4YN3jPOOONbAHC73Zg6depXDz74YE8AePbZZ7sPHTr0u379+jX+4Q9/6Pfqq69u3rRp0/qXX375k86dO+tvf/vbL6ZMmfL1xo0b1//85z//+rbbbut37rnn7vv44483LF++fNPvfve7k/bt2+cCgFWrVnV9/PHH/+8f//jH5p///Oe7H3nkkRMA4KuvvnKvXLmy6+WXX14fPuK267du/8tf/tK7vLx818aNG9evWbNmw8CBA4+E68NuHDRlsOABk1m7k1RUAAfbZhfFwYNGO1GiWU1ny3S4RBROqJMqS/5vCZrUqNHRpE2oWlHVbuDk1JMxTo0r3Rw5sjM7lvZYjB079rvPP/+80wMPPNBz0qRJbQYrfr9/zxNPPHECACxcuLDX9OnT9wBAcXHxgdLS0ry77767V2OYgptLly7tPm/evH5DhgwpHD9+fMHhw4flk08+yQaAs88+e1+fPn2aAGDy5MkH6urqOm/fvt3z0EMP9Zw8efLXWVmRn+trvX5rZ5xxxrd33313v4qKir5b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\n",
      "text/plain": [
       "<Figure size 720x504 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10,7))\n",
    "fig.tight_layout()\n",
    "\n",
    "plots = [(0,1),(2,3),(0,2),(1,3)]\n",
    "colors = ['b', 'r', 'g']\n",
    "labels = ['Iris setosa','Iris virginica','Iris versicolor','Mystery iris']\n",
    "\n",
    "for i, ax in enumerate(axes.flat):\n",
    "    for j in range(3):\n",
    "        x = df.columns[plots[i][0]]\n",
    "        y = df.columns[plots[i][1]]\n",
    "        ax.scatter(df[df['target']==j][x], df[df['target']==j][y], color=colors[j])\n",
    "        ax.set(xlabel=x, ylabel=y)\n",
    "        \n",
    "    # Add a plot for our mystery iris:\n",
    "    ax.scatter(mystery_iris[plots[i][0]],mystery_iris[plots[i][1]], color='y')\n",
    "    \n",
    "fig.legend(labels=labels, loc=3, bbox_to_anchor=(1.0,0.85))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now run it through the model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([ 12.2116,   7.1285, -19.5247])\n",
      "\n",
      "Iris setosa\n"
     ]
    }
   ],
   "source": [
    "with torch.no_grad():\n",
    "    print(new_model(mystery_iris))\n",
    "    print()\n",
    "    print(labels[new_model(mystery_iris).argmax()])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Great job!"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
